wjzwjs 2014-02-16 03:49
浏览 916

孤儿进程的问题,请教高手

#include stdio.h>
#include stdlib.h>
#include unistd.h>
#include signal.h>
#include errno.h>
#define errexit(msg) do{ perror(msg); exit(EXIT_FAILURE); } while(0)
static void sig_hup(int signo)
{
printf("SIGHUP received, pid = %d\n", getpid());
}
static void sig_cont(int signo)
{
printf("SIGCONT received, pid = %d\n", getpid());
}
static void sig_ttin(int signo)
{
printf("SIGTTIN received, pid = %d\n", getpid());
}
static void pr_ids(char name)
{
printf("%s: pid = %d, ppid = %d, pgrp = %d, tpgrp = %d\n",
name, getpid(), getppid(), getpgrp(), tcgetpgrp(STDIN_FILENO));
}
int main(int argc, char *argv[])
{
char c;
pid_t pid;
setbuf(stdout, NULL);
pr_ids("parent");
if ((pid = fork()) 0) {
errexit("fork error");
} else if (pid > 0) { /
parent /
sleep(5);
printf("parent exit\n");
exit(0);
} else { /
child */
pr_ids("child...1");
signal(SIGCONT, sig_cont);
signal(SIGHUP, sig_hup);
signal(SIGTTIN, sig_ttin);
kill(getpid(), SIGTSTP);
//sleep(10);
pr_ids("child...2");
if (read(STDIN_FILENO, &c, 1) != 1) {
printf("read error from controlling TTY, errno = %d\n", errno);
}
printf("child exit\n");
}
exit(0);
}
将改程序编译成: m
程序执行结果:

[liumin@localhost orphan]$ ./m
parent: pid = 15028, ppid = 8611, pgrp = 15028, tpgrp = 15028
child...1: pid = 15029, ppid = 15028, pgrp = 15028, tpgrp = 15028
parent exit
SIGCONT received, pid = 15029
[liumin@localhost orphan]$ SIGHUP received, pid = 15029
child...2: pid = 15029, ppid = 1, pgrp = 15028, tpgrp = 8611
child exit

但是 ./m > result.txt
parent: pid = 15028, ppid = 8611, pgrp = 15028, tpgrp = 15028
child...1: pid = 15029, ppid = 15028, pgrp = 15028, tpgrp = 15028
parent exit
SIGCONT received, pid = 15029
[liumin@localhost orphan]$ SIGHUP received, pid = 15029
read error from controlling TTY, errno = 5
child...2: pid = 15029, ppid = 1, pgrp = 15028, tpgrp = 8611

read error from controlling TTY, errno = 5 不导入文件就不出现 问什么?
请各位指教。我用ubuntu10.04

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 delta降尺度计算的一些细节,有偿
    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
    • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序