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

  免費注冊 查看新帖 |

Chinaunix

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

APUE 孤兒進(jìn)程 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-09-18 20:11 |只看該作者 |倒序瀏覽
APUE229頁一直在描述孤兒進(jìn)程組

但是為什么下面的那一段代碼先用子進(jìn)程kill子進(jìn)程自己,然后在怎么怎么樣?不是先干掉父進(jìn)程么?
  1. #include "apue.h"
  2. #include <errno.h>

  3. static void sig_hup(int signo)
  4. {
  5.         printf("SIGUP received, pid=%d\n", getpid());
  6. }

  7. static void pr_ids(char* name)
  8. {
  9.         printf("%s: pid=%d, ppid=%d, pgrd=%d, tpgrp=%d\n",
  10.                         name, getpid(), getppid(), getpgrp(), tcgetpgrp(STDIN_FILENO));
  11.         fflush(stdout);
  12. }

  13. int main(void)
  14. {
  15.         char c;
  16.         pid_t pid;

  17.         pr_ids("parent");
  18.         if((pid=fork())<0)
  19.         {
  20.                 err_sys("fork error");
  21.         }
  22.        
  23.         if(pid>0)
  24.         {
  25.                 sleep(5);
  26.                 exit(0);
  27.         }else
  28.         {
  29.                 pr_ids("child");
  30.                 signal(SIGHUP, sig_hup);
  31.                 kill(getpid(), SIGTSTP);
  32.                 pr_ids("child");
  33.                 if(read(STDIN_FILENO, &c, 1)!=1)
  34.                         printf("read error from controlling TTY, errno=%d\n", errno);

  35.                 exit(0);
  36.         }
  37. }
復(fù)制代碼
還有就是執(zhí)行到子進(jìn)程kill自己了,怎么子進(jìn)程還會繼續(xù)執(zhí)行到下面一行的pr_ids???

論壇徽章:
95
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
2 [報告]
發(fā)表于 2011-09-18 20:49 |只看該作者
但是為什么下面的那一段代碼先用子進(jìn)程kill子進(jìn)程自己,然后在怎么怎么樣?不是先干掉父進(jìn)程么?

sleep(5);  的效果就是讓子進(jìn)程先 stop(kill(getid(), SIGTSTP); 就是這個作用),然後父進(jìn)程再退出,這時子進(jìn)程就處於一個孤兒進(jìn)程組且為 stop 狀態(tài)。

還有就是執(zhí)行到子進(jìn)程kill自己了,怎么子進(jìn)程還會繼續(xù)執(zhí)行到下面一行的pr_ids???
729926317 發(fā)表于 2011-09-18 20:11

在父進(jìn)程退出的時候,由於此時子進(jìn)程處於孤兒進(jìn)程組中且是 stop 狀態(tài),OS 會向其發(fā)送 SIGHUP + SIGCONT 信號(POSIX.1 的要求),將其喚醒。

論壇徽章:
0
3 [報告]
發(fā)表于 2011-09-19 09:54 |只看該作者
回復(fù) 1# 729926317


    可以斷定,LZ 沒弄清楚 kill這個函數(shù)的作用是什么。

    在這里,它是用來發(fā)信號的,而不是殺掉某個進(jìn)程
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP