View Single Post
Old 20-04-2004, 18:19   #1
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Cittā: Roma
Messaggi: 1502
[c]Creare processi con la fork

Salve, ho un problema a far funzionare la fork per creare dei processi. Il mio scopo č avere il processo padre che crea 2 processi figli ognuno dei quali stampa una stringa. Ho scritto questo codice, in cui in un ciclo for il padre esegue la fork creando un figlio ad
ogni iterazione:

Codice PHP:
#include <unistd.h>
# include <stdio.h>

int mainint argcchar **argv)
{
    
printf("\nInizio");
    
    
int pid 1;
    
int testNumber;
    
    for(
testNumber 0; ((testNumber 2) && (pid != 0)); testNumber++){
        
pid fork();
    }
        
        
//Se sono il figlio pid vale zero e quindi stampo
    
if(pid == 0){
        if(
testNumber == 1){
            
printf("\nuno");
        }
        if(
testNumber == 2){
            
printf("\ndue");
        }
    }
        
  return 
0;

Io mi aspetterei di vedere stampate in qualche ordine le stringhe "Inizio" "uno" "due",

ivece ottengo:

Inizio Inizio Inizio uno due in qualche oridne.

Come mai? Non riesco a capire questo output. Perche Inizio appare tre volte?
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals

Ultima modifica di anx721 : 20-04-2004 alle 18:29.
anx721 č offline   Rispondi citando il messaggio o parte di esso