久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久


信號捕捉函數alarm()和pause()

分享到:
           

    本文關鍵字: 信號捕捉函數,alarm(),pause()

    alarm()也(ye)稱為鬧(nao)鐘(zhong)函數,它可以在進程中設置(zhi)一(yi)個定(ding)時(shi)器,當定(ding)時(shi)器指定(ding)的時(shi)間到(dao)時(shi),它就向進程發送SIGALARM信號。要注意(yi)的是,一(yi)個進程只能有一(yi)個鬧(nao)鐘(zhong)時(shi)間,如果在調用alarm()之(zhi)前已設置(zhi)過鬧(nao)鐘(zhong)時(shi)間,則任何以前的鬧(nao)鐘(zhong)時(shi)間都被新值所代替。

    pause()函數用(yong)于(yu)將(jiang)調用(yong)進程掛(gua)起(qi)直至捕(bu)捉到信號為止。這個函數很常用(yong),通常可以用(yong)于(yu)判(pan)斷信號是否已到。

    表(biao)1列(lie)出了alarm()函數(shu)的語(yu)法要點。

表1 alarm()函數語法要(yao)點

所需頭文件 #include <unistd.h>
函數原型 unsigned int alarm(unsigned int seconds)
函數傳入值 seconds:指定秒數,系統經過seconds秒后向該進程發送SIGALRM信號
函數返回值 成功:如果調用此alarm()前進程中已經設置了鬧鐘時間,則返回上一個鬧鐘時間的剩余時間,否則返回0
出錯:-1

   ; 表2列出了pause()函數的語(yu)法要(yao)點。

表2 pause()函數語法(fa)要點

所需頭文件 #include <unistd.h>
函數原型 int pause(void)
函數返回值 -1,并且把error值設為EINTR

    以(yi)下(xia)實(shi)例(li)實(shi)際上(shang)已完成了一(yi)個簡單的sleep()函數的功(gong)能,由于SIGALARM默認的系統動作為終止該(gai)進(jin)程,因此(ci)程序在打(da)印信息前就會(hui)被結束(shu)了,代(dai)碼如下(xia):

    /* alarm_pause.c */
    #include <unistd.h>
    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
        /* 調用alarm定時器函數 */
        int ret = alarm(5);
        pause();
        printf("I have been waken up.\n",ret); /* 此語句不會被執行 */
    }
    $./alarm_pause
    Alarm clock

    本文選自華清遠見嵌入式培訓教材《從實踐中學嵌入式Linux應用程序開發》

   熱點鏈接:

   1、信號發送函數kill()和raise()
   2、Linux下的信號機制
   3、有名管道(FIFO)
   4、標準流管道
   5、無名管道系統調用

更多新聞>>