Output van een stukje code

Status
Niet open voor verdere reacties.

eMPaTi

Gebruiker
Lid geworden
31 mei 2007
Berichten
6
De vraag is; wat is de output van de volgende code:

Code:
#include <stdlib.h>
void main(void) {
	int i = 0 ;
	for( i = 1 ; i < 3 ; i++ )  {
		fork() ;
		print(‘’Regel  i='’,i ) ;
	}
}

Ik heb van verschillende stoffen begrepen dat fork() een proces kopieert. Maar wat zou ik dan moeten krijgen?

zo iets: Regel i=1,1,2,2,2,2... of Regel i=1,2,2,1,2,2 ?
 
Nee, ik werk namelijk met java. heb er niets geinstalleerd.
 
sterker nog
de output is

Code:
regel i=1regel i=2
En dat heb je dan gedaan met 3 verschillende processen.
Je Parent proces (de applicatie) creeerd dmv fork een nieuw child proces wat "regel i=1" als output heeft, de 2e keer roept hij wederom een nieuw child proces aan die "regel i=2" afdrukt en daarna springt hij uit de loop statement

Let wel op want anders ga je je recources onnodig gebruiken als je fout omgaat met het commando fork
 
Laatst bewerkt:
Ik ben er nog niet uit kunnen komen.

@Ellasar
wat is dan nut van fork() ? zonder fork krijg je toch ook zelfde output?
 
afaik kun je met Fork ervoor zorgen dat bijvoorbeeld een duocore processor echt nut heeft aangezien je 2 processen hebt die elk door een core verwerkt kunnen worden.
 
Het "forken" van een prcoess betekent dat je hem kopieert. Alle lokale variabelen worden 1 op 1 overgezet en ook alle threads gaan mee.
Meestal gebruik je fork() om het process verder te laten gaan op de achtergrond en het parent process te exitten zodat de gebruiker zijn prompt terug krijgt.

In jouw geval adviseer ik het gebruik van threads ipv fork()

kijk hiervoor naar de functie CreateThread() in Windows en pthread_create() in POSIX (UNIX, Linux, etc.)
 
Ik denk dat ik het begrepen heb. Bedankt voor de reacties mensen.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan