- 论坛徽章:
- 0
|
apue上的一段代码,
- static void sig_hup(int);
- static void pr_ids(char *);
- int
- main(void)
- {
- char c;
- pid_t pid;
- pr_ids("parent");
- if ( (pid = fork()) < 0)
- err_sys("fork error");
- else if (pid > 0) { /* parent */
- sleep(5); /* sleep to let child stop itself */
- exit(0); /* then parent exits */
- } else { /* child */
- pr_ids("child");
- signal(SIGHUP, sig_hup);//我就是搞不懂,这个SIGHUP是什么时候,由谁发出来的?是不是父进程退出都会发SIGHUP信号给子进程,叫他们跟着他爹一块去死?
- kill(getpid(), SIGTSTP); //还有,因为父进程想他儿子跟他一块完蛋,会自动给处于暂停壮态的子进程发SIGCONT信号,唤醒这个儿子,这样做是为了不耽误他爷俩一块over?
- pr_ids("child");
- if (read(0, &c, 1) != 1)
- printf("read error from control terminal, errno = %d\n", errno);
- exit(0);
- }
- }
复制代码
[ 本帖最后由 xxldc 于 2008-4-11 11:57 编辑 ] |
|