Je n'ai jamais eu ça avant; Je fais un programme simple: un processus père qui crée des processus enfants, et après il se termine; c'est le codeFork(), un processus ne se termine pas?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int child(pid_t pid)
{
printf("process %d is terminating\n",pid);
exit(EXIT_SUCCESS);
}
int main()
{
int i;
for(i = 0; i < 2; i++){
if(fork() == 0)
child(getpid());
}
printf("father, pid=%d terminated\n",getpid());
/*if(wait(NULL) == -1)
perror("wait");*/
exit(EXIT_SUCCESS);
}
quand je lance, tous les processus imprimés, mais un processus, je pense que le père, mais je ne suis pas sûr, ne se termine pas parce que la borne est active (ne semble pas $); insted, si j'insère une ligne commentée avec wait, le programme s'exécute correctement; pourquoi ça?
Pouvez-vous afficher la sortie de terminal que vous voyez? –
l'a ajouté; comme vous pouvez le voir, parfois il fonctionne correctement, parfois un processus ne se termine pas .. –