- 论坛徽章:
- 0
|
APUE229页一直在描述孤儿进程组
但是为什么下面的那一段代码先用子进程kill子进程自己,然后在怎么怎么样?不是先干掉父进程么?- #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);
- }
- }
复制代码 还有就是执行到子进程kill自己了,怎么子进程还会继续执行到下面一行的pr_ids??? |
|