Linux Cシステムプログラミング:信号とタイマーの使用
1417 ワード
#include <stdio.h>
#include <signal.h>
void do_alarm(int num);
int main(void)
{
//
if(signal(SIGALRM , do_alarm) == SIG_ERR)
{
perror("register alarm fail");
return -1;
}
//alarm
////3 SIGALRM , SIGALRM :
alarm(3);
while(1)
{
printf("this is in main...
");
sleep(3);
}
return 0 ;
}
void do_alarm(int num)
{
printf("this is in alarm ... &*&&
");
// sleep
alarm(1);
}
実行結果:
this is in main... this is in alarm ... &*&&this is in main... this is in alarm ... &*&&this is in main... this is in alarm ... &*&&this is in main...
......
<signal.h> 。
signal( 1, 2);
1: 。 kill -l ( 64 )。 。
2: ( ), , 。
unsigned int alarm(unsigned int seconds);
1: 。
, , alarm , 。 , , , , 。 , seconds 0, , alarm 。
SIGALRM , do_alarm 。 , , 。