|
1.以下代码是不可靠信号处理的经典例子之一,逐一详细说明其中的问题和错误原因(包括细节), 并给出解决方法:
1 int sig_int_flag; /* set nonzero when signal occurs */
2
3 int
4 main( int argc, char **argv )
5 {
6 int sig_int();
7
8 signal( SIGINT, sig_int );
9
10 while ( sig_int_flag == 0 )
11 pause(); /* waiting for a incoming signal */
12 ...
13 }
14
15 void
16 sig_int( int signum )
17 {
18 signal( SIGINT, sig_int );
19 sig_int_flag = 1;
20 } |
|