Bonjour, j'ai une question sur ce code :
int main (int argc, char *argv[]) {
int tube[2];
char ligne[200];
struct sigaction ac;
sigemptyset(&ac.sa_mask);
ac.sa_handler=coucou;
ac.sa_flags=0;
if (sigaction(SIGUSR1,&ac,NULL)){
perror("Installation coucou");
}
if (pipe(tube) == -1){
perror("pipe");
exit(errno);
}
switch (pid=fork()) {
case -1 :
perror("fork");
exit(errno);
case 0 :
close(tube[1]);
codeFils(tube) ;
exit(0);
default : close(tube[0]);
}
//Question comprend ce bout de code
while (fgets(ligne, TAILLE, stdin) || errno==EINTR) {
if (errno ==EINTR) {
errno=0;
continue;
}
if (write(tube[1],ligne,strlen(ligne)) != strlen(ligne)){
perror("write");
exit(errno);
}
}
return 0;
}
Cette partie de code (en dessous du commentaire), est exécuté seulement par le père ou aussi le fils ?
Parce que ce TP est correct, ça fonctionne, mais je me pose la question.
Merci d'avance.