Chinaunix
标题:
一个关于信号屏蔽的问题,比较麻烦,请大家帮忙
[打印本页]
作者:
eggking1102
时间:
2009-03-30 09:24
标题:
一个关于信号屏蔽的问题,比较麻烦,请大家帮忙
我写了一个c程序 1.c
在程序中,适用system调用了脚本启动 2.c 这个程序
然后在其他地方又适用system调用kill杀掉 2.c 的进程
但是,在kill掉2.c的时候,会把 1.c 也杀掉
我使用
sigset_t hupSigs;
sigfillset(&hupSigs);
sigprocmask(SIG_BLOCK,&hupSigs,NULL);
屏蔽信号
但是,信号时屏蔽了,kill这个命令执行就不起作用了。。。
请大家帮帮忙,怎么才能在kill 2.c 这个进程的时候,1.c 不会退出,还后kill正确执行
谢谢。
作者:
eggking1102
时间:
2009-03-30 11:27
怎么都没人帮我啊。。。555555555555555
作者:
angle4
时间:
2009-03-30 13:09
我觉得你应该,fork一个子进程,让子进程去执行2.c的二进制文件,然后在其他地方通过kill(pid, signo)把2.c的二进制程序结束了
作者:
flynetcn
时间:
2009-03-30 13:28
system能得到子进程的pid吗?那kill发送给了子进程还是进程组?
如果是发送给了进程组,那可能是system的实现有问题。
见apue2, Figure 10.28. Correct POSIX.1 implementation of system function
作者:
Sorehead
时间:
2009-03-30 15:00
1、c有函数kill,而不用通过system来实现。
2、1.c的退出与2.c没有什么关系,应该是程序本身的问题。
作者:
angle4
时间:
2009-03-30 21:06
为啥非要用 system??
exec也可以啊
作者:
eggking1102
时间:
2009-03-31 16:26
谢谢大家了,问题解决了
作者:
eggking1102
时间:
2009-04-01 10:09
谢谢。。。已经解决了
从别的地方解决的
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2