为什么进程总是不停的收到SIGTTOU信号,请高手指点
#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<signal.h>
#include<errno.h>
static void sig_ttou(int signo)
{
printf("SIGTTOU receive");
}
int main(void)
{
signal(SIGTTOU,sig_ttou);
printf("hello");
return 0;
}
这是程序的源代码,根据UNIX环境高级编程上所说,用stty tostop关闭后台输出后,在后台进程试图写控制终端的时候,产生SIGTTOU信号。问题(1):我用./sigttou & 讲这个程序在后台执行以后,它总是不停的收到SIGTTOU信号呢?总不是停的打印SIGTTOU receive,好像一个死循环一样 无休止的打印SIGTTOU receive 请各位大哥帮小弟解惑。
问题(2):我将signal的第二个参数设置成SIG_IGN,忽略SIGTTOU信号,同样也是用 stty tostop 关闭后台输出,将该进程在后台执行,为什么会输出hello 我不是已经关闭了后台输出了吗?为什么这个进程还能在控制终端输出呢,请高手帮忙解决,跪谢了