URL: https://linuxfr.org/forums/programmation-c--2/posts/j-arrive-pas-a-comprendre-ce-programme Title: j'arrive pas à comprendre ce programme Authors: nabil.choukri Date: 2014年10月01日T18:04:13+02:00 License: CC By-SA Tags: piscine et epitech Score: -10 ```C #include #include #include #include #include #include #include #define MAX 512 void rien(int sig){ printf("%d\n",sig); } int main(void){ int pfd[2],pid1,nlu,pid2; char s[MAX]; if (pipe(pfd) == -1) {perror("pipe");exit(1);} pid1 = fork(); if(pid1 == -1) {perror("fork 1");exit(1);} else /************* fille 1 *************************************/ if(pid1 == 0){ nlu = read(pfd[0],s,sizeof(s)); printf("1 dit ma soeur est : %d\n",pid2=atoi(s)); if(kill(pid2,SIGUSR1)) {perror("F1 : invalid pid2");exit(1);} ; } else{ pid2 = fork(); if(pid2 == -1) {perror("fork 2");exit(1);} else /************* fille 2 *************************************/ if(pid2 == 0){ signal(SIGUSR1,rien); printf("je suis fille 2 avec %d pour Pid\n",getpid()); pause(); printf("soeur 1 vient de me reveiller\n"); } /************* mere *************************************/ else{ sleep(1); sprintf(s,"%d",pid2); if(write(pfd[1],s,strlen(s)) == -1 ) {perror("write 1");exit(1);} wait(0); wait(0); } } } ```

AltStyle によって変換されたページ (->オリジナル) /