国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩


信號(hào)捕捉函數(shù)alarm()和pause()

分享到:
           

    本文關(guān)鍵字: 信號(hào)捕捉函數(shù),alarm(),pause()

    alarm()也稱為鬧鐘函數(shù),它可以在進(jìn)程中設(shè)置一個(gè)定時(shí)器,當(dāng)定時(shí)器指定的時(shí)間到時(shí),它就向進(jìn)程發(fā)送SIGALARM信號(hào)。要注意的是,一個(gè)進(jìn)程只能有一個(gè)鬧鐘時(shí)間,如果在調(diào)用alarm()之前已設(shè)置過鬧鐘時(shí)間,則任何以前的鬧鐘時(shí)間都被新值所代替。

    pause()函數(shù)用于將調(diào)用進(jìn)程掛起直至捕捉到信號(hào)為止。這個(gè)函數(shù)很常用,通常可以用于判斷信號(hào)是否已到。

    表1列出了alarm()函數(shù)的語法要點(diǎn)。

表1 alarm()函數(shù)語法要點(diǎn)

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

    表2列出了pause()函數(shù)的語法要點(diǎn)。

表2 pause()函數(shù)語法要點(diǎn)

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

    以下實(shí)例實(shí)際上已完成了一個(gè)簡單的sleep()函數(shù)的功能,由于SIGALARM默認(rèn)的系統(tǒng)動(dòng)作為終止該進(jìn)程,因此程序在打印信息前就會(huì)被結(jié)束了,代碼如下:

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

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

    本文選自華清遠(yuǎn)見嵌入式培訓(xùn)教材《從實(shí)踐中學(xué)嵌入式Linux應(yīng)用程序開發(fā)》

   熱點(diǎn)鏈接:

   1、信號(hào)發(fā)送函數(shù)kill()和raise()
   2、Linux下的信號(hào)機(jī)制
   3、有名管道(FIFO)
   4、標(biāo)準(zhǔn)流管道
   5、無名管道系統(tǒng)調(diào)用

更多新聞>>