簡體   English   中英

如何從父進程向孩子發出信號?

[英]How to signal from parent process to the child?

如何從父進程向孩子發送信號? 寫完管道后,我想向子進程發送信號。

 pid_t pid;
     int filds[2];
     pipe(filds);
     char *args[150] = {"./draw.out", NULL};
     char buff = '\0';

     if ((pid = fork()) < 0) {  // fork a child process/
         printf("*** ERROR: forking child process failed\n");
         exit(1);
     } else if (pid == 0) {
         execvp(args[0], args); // execute the command
     } else {  // for the parent
         char btnPressed = getch();

         while (btnPressed != 'q'){
             btnPressed = getch();
             write(filds[1],buff, BUFF_SIZE); 
             //signal
         }
         // signal finish game.
     }
kill(PID, SIGwhatever);

但是,這可能是一個糟糕的選擇。 更好的解決方案是

close(filds[1]);

並處理關閉孩子的輸入。 我想你想念一個

dup2(files[0],0);

在子路徑中也是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM