LoveUnix » 编程开发 & Rational » 求教signal与folk()的使用
让LU留住您的每

一天 让LU博客留住您的每一天
2005-7-26 23:36 fan.room
小弟刚刚接触Linux下C编程,对进程/信号等概念的理解一塌糊涂.希望有人能以下面程序为例,讲解其运行过程与结果. 在此向各位大哥谢过.<br /> <br />#include &lt; signal.h &gt;<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
看了&lt;UNIX环境高级编程&gt;,特别是10.7节.但还是有些糊涂<br />麻烦无双大哥给个比较确切的答复.<br />是只输出一列&quot;parent caught sig &quot;<br />还是反复输出&quot;parent caught sig &quot;直到异常中止.<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) &gt; 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]
查看完整版本: 求教signal与folk()的使用


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.