- 論壇徽章:
- 0
|
APUE229頁一直在描述孤兒進(jìn)程組
但是為什么下面的那一段代碼先用子進(jìn)程kill子進(jìn)程自己,然后在怎么怎么樣?不是先干掉父進(jìn)程么?- #include "apue.h"
- #include <errno.h>
- static void sig_hup(int signo)
- {
- printf("SIGUP received, pid=%d\n", getpid());
- }
- static void pr_ids(char* name)
- {
- printf("%s: pid=%d, ppid=%d, pgrd=%d, tpgrp=%d\n",
- name, getpid(), getppid(), getpgrp(), tcgetpgrp(STDIN_FILENO));
- fflush(stdout);
- }
- int main(void)
- {
- char c;
- pid_t pid;
- pr_ids("parent");
- if((pid=fork())<0)
- {
- err_sys("fork error");
- }
-
- if(pid>0)
- {
- sleep(5);
- exit(0);
- }else
- {
- pr_ids("child");
- signal(SIGHUP, sig_hup);
- kill(getpid(), SIGTSTP);
- pr_ids("child");
- if(read(STDIN_FILENO, &c, 1)!=1)
- printf("read error from controlling TTY, errno=%d\n", errno);
- exit(0);
- }
- }
復(fù)制代碼 還有就是執(zhí)行到子進(jìn)程kill自己了,怎么子進(jìn)程還會繼續(xù)執(zhí)行到下面一行的pr_ids??? |
|