2005-7-26 23:36
fan.room
小弟刚刚接触Linux下C编程,对进程/信号等概念的理解一塌糊涂.希望有人能以下面程序为例,讲解其运行过程与结果. 在此向各位大哥谢过.<br /> <br />#include < signal.h ><br />main (int argc, char *argv[ ] )<br />{ <br /> extern void catcher ( ) ;<br /> <br /> signal ( SIGCLD , catcher ) ;<br /> if ( fork ( ) == 0 <br /> exit ( 0 ) ;<br /> pause ( ) ;<br />}<br />void catcher ( ) <br />{<br /> printf ( “ parent caught sig \n “ ) ;<br /> signal ( SIGCLD , catcher ) ;<br />}<br />
2005-7-27 12:32
无双
看 UNIX环境高级编程 吧<br /><br />如果是做unix下开发的 建议把这本书好好看一启遍
2005-7-31 20:22
fan.room
看了<UNIX环境高级编程>,特别是10.7节.但还是有些糊涂<br />麻烦无双大哥给个比较确切的答复.<br />是只输出一列"parent caught sig "<br />还是反复输出"parent caught sig "直到异常中止.<br />如果是反复输出,那么又该怎么改才能保证只输出一列?
2005-8-6 23:35
fan.room
昏,没人管我了 <!--emo&:cry:--><img src='style_emoticons/default/cry_smile.gif' border='0' style='vertical-align:middle' alt='cry_smile.gif' /><!--endemo-->
2005-8-7 09:07
tryit
some of my thoughts<br />1) only one line output , as a process can only die once, as we do <!--emo&:)--><img src='style_emoticons/default/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo--> <br />2) > 99.99% chances, the parent process will be finished; however, a very small chance, it might pause there
2005-8-8 13:17
无双
void catcher ( )<br />{<br />printf ( “ parent caught sig \n “ ) ;<br />signal ( SIGCLD , catcher ) ; 你这里每次都会重安装信号处理程序<br /><br />所以如果一直接收到这个信号的话当然会一直输出<br />}<br /><br />其它的同意tryit的想法
页:
[1]
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.