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  。             ,     ,                  。