歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix基礎知識 >> Unix編程之alarm函數詳解

Unix編程之alarm函數詳解

日期:2017/3/3 15:23:32   编辑:Unix基礎知識

Unix下編程很容易遇到這個函數,我們可以先看下這個函數的介紹,用man工具,man alarm。

對於Unix系統的聯機幫助中關於alarm函數的介紹如下:

#include <unistd.h>    
unsigned int alarm(unsigned int seconds);

它的主要功能是設置信號傳送鬧鐘。其主要功能用來設置信號SIGALRM在經過seconds指定的秒數後傳送給目前的進程,如果在定時未完成的時間內再次調用了alarm函數,則後一次定時器設置將覆蓋前面的設置,當seconds設置為0時,定時器將被取消。它返回上次定時器剩余時間,如果是第一次設置則返回0。

舉個簡單的例子:

#include <unistd.h>    
#include <stdio.h>    
#include <stdlib.h>    
#include <signal.h>    
        
void sig_alarm()    
{    
    exit(0);    
}    
int main(int argc, char *argv[])    
{    
    signal(SIGALRM, sig_alarm);    
    alarm(10);    
    sleep(15);    
    printf("Hello World!\n");    
    return 0;    
}

程序在10s後結束,並未輸出Hello World!

Copyright © Linux教程網 All Rights Reserved