亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3023 | 回復(fù): 2
打印 上一主題 下一主題

[C] 為什么WIFCONTINUED不在作業(yè)繼續(xù)的時候沒有正確的返回呢? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-01-16 17:50 |只看該作者 |倒序?yàn)g覽
本帖最后由 DIYBYPERL 于 2014-01-16 17:58 編輯

代碼如下,結(jié)果見后
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <math.h>
  5. #include <unistd.h>
  6. #include <fcntl.h>
  7. #include <stdarg.h>
  8. #include <errno.h>
  9. #include <sys/sysmacros.h>
  10. #include <sys/utsname.h>
  11. #include <pwd.h>
  12. #include <grp.h>
  13. #include <time.h>
  14. #include <sys/time.h>


  15. #define MAXLINE 1024
  16. #define FILE_MODE 0777

  17. #define BUFFSIZE 4096
  18. static int err_sys(char *fmt, ...);
  19. void pr_exit(int status);


  20. int main(int argc, char **argv)
  21. {
  22.     int iret;
  23.     pid_t pid;
  24.     int status = 0;


  25.     if((pid = fork()) < 0)
  26.         err_sys("fork error");
  27.     else if(pid == 0)
  28.     {
  29.         int cnt = -1;
  30.         while(cnt ++ < 120)
  31.         {
  32.             printf("CHLD:%2d.\n", cnt);
  33.             sleep(1);
  34.         }
  35.         _exit(0);
  36.     }
  37.     else
  38.     {
  39.         int cnt = -1;
  40.         while(waitpid(pid, &status, WCONTINUED | WUNTRACED ) == pid)
  41.         {
  42.             pr_exit(status);
  43.         }
  44.         printf("PARENT OVER\n");

  45.     }


  46.     exit(0);

  47. }



  48. /****************************************************************
  49. *以下是錯誤處理函數(shù)
  50. ***************************************************************/
  51. static int err_sys(char *msg)
  52. {
  53.         printf("%s\n", msg);
  54.     exit(1);
  55. }



  56. /****************************************************************
  57. *以下獲取子進(jìn)程退出狀態(tài)函數(shù)
  58. ***************************************************************/
  59. void pr_exit(int status)
  60. {
  61.     if(WIFEXITED(status))
  62.     {
  63.         printf("normal terminatioin, exit status = %d\n", WEXITSTATUS(status));
  64.     }
  65.     else if(WIFSIGNALED(status))
  66.     {
  67.         printf("abnormal termination, signal number = %d%s\n",
  68.                 WTERMSIG(status),
  69. #ifdef WCOREDUMP
  70.                 WCOREDUMP(status) ? "(core file generated)" : "");
  71. #else
  72.               "");
  73. #endif
  74.     }
  75.     else if(WIFSTOPPED(status))
  76.     {
  77.         printf("child stopped, signal number = %d\n", WSTOPSIG(status));
  78.     }
  79.     else if(WIFCONTINUED(status))
  80.     {
  81.         printf("child continue\n");
  82.     }
  83.     else
  84.     {

  85.         printf("unkown exit status\n");
  86.     }

  87.     fflush(stdout);

  88. }











復(fù)制代碼
代碼是在AIX6.1下測試的。直接用“kill -18 <子進(jìn)程ID>” 給子進(jìn)程SIGTSTP信號,用“kill -19 <子進(jìn)程ID>” 給子進(jìn)程SIGCONT信號。發(fā)送SIGTSTP信號,父進(jìn)程都能waitpid到子進(jìn)程相應(yīng)的狀態(tài),但發(fā)送繼續(xù)信號時收不到子進(jìn)程相應(yīng)的狀態(tài)。但在隨后再次發(fā)送SIGTSTP信號時,父進(jìn)程卻同時收到子進(jìn)程的暫停狀態(tài)和之前的繼續(xù)狀態(tài), 這是是個什么意思呢?????在SIGTSTP時,收到子進(jìn)程的暫停和繼續(xù)狀態(tài), 在SIGCONT卻收不到繼續(xù)狀態(tài)????
請大神們指點(diǎn)

以下是運(yùn)行結(jié)果,
  1. CHLD: 0.
  2. CHLD: 1.
  3. CHLD: 2.
  4. CHLD: 3.
  5. CHLD: 4.
  6. CHLD: 5.
  7. CHLD: 6.
  8. CHLD: 7.
  9. CHLD: 8.
  10. CHLD: 9.
  11. CHLD:10.
  12. CHLD:11.
  13. CHLD:12.
  14. child stopped, signal number = 18   子進(jìn)程收到SIGTSTP信號,父進(jìn)程也打印了相應(yīng)的內(nèi)容

  15. CHLD:13.                            子進(jìn)程收到SIGCONT信號繼續(xù)運(yùn)行,父進(jìn)程卻沒有waitpid地到相應(yīng)的狀
  16. CHLD:14.
  17. CHLD:15.
  18. CHLD:16.
  19. CHLD:17.
  20. CHLD:18.
  21. CHLD:19.
  22. CHLD:20.
  23. CHLD:21.
  24. child stopped, signal number = 18 子進(jìn)程第二次收到SIGTSTP信號,父進(jìn)程同時收到了子進(jìn)程暫停的狀態(tài)和之前的繼續(xù)的狀態(tài)!
  25. child continue                    子進(jìn)程第二次收到SIGTSTP信號,父進(jìn)程同時收到了子進(jìn)程暫停的狀態(tài)和之前的繼續(xù)的狀態(tài)!!
  26. CHLD:22.
  27. CHLD:23.
  28. CHLD:24.
  29. CHLD:25.
  30. CHLD:26.
  31. CHLD:27.
  32. CHLD:28.
復(fù)制代碼

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2014-01-17 09:36 |只看該作者
大神出現(xiàn)。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2014-01-17 12:16 |只看該作者
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP