欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

sigsetjmp的用法總結(jié)

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊: 次

相關(guān)函數(shù):longjmp, siglongjmp, setjmp

表頭文件:#include <setjmp.h>

函數(shù)定義:int sigsetjmp(sigjmp_buf env, int savesigs)

函數(shù)說(shuō)明:sigsetjmp()會(huì)保存目前堆棧環(huán)境,然后將目前的地址作一個(gè)記號(hào),

而在程序其他地方調(diào)用siglongjmp()時(shí)便會(huì)直接跳到這個(gè)記號(hào)位置,然后還原堆棧,繼續(xù)程序的執(zhí)行。

參數(shù)env為用來(lái)保存目前堆棧環(huán)境,一般聲明為全局變量

參數(shù)savesigs若為非0則代表擱置的信號(hào)集合也會(huì)一塊保存

當(dāng)sigsetjmp()返回0時(shí)代表已經(jīng)做好記號(hào)上,若返回非0則代表由siglongjmp()跳轉(zhuǎn)回來(lái)。

返回:若直接調(diào)用則為0,若從siglongjmp調(diào)用返回則為非0

實(shí)例:

復(fù)制代碼 代碼如下:

#include <stdio.h>
#include <signal.h>
#include <setjmp.h>
#include <unistd.h>
#include <sys/time.h>

sigjmp_buf jmp_env;

static void connect_alarm(int)
{
    siglongjmp(jmp_env, 1);
}

int main()
{
    // 當(dāng)超時(shí)時(shí)間sec_timeout大于等于運(yùn)行時(shí)間run_time時(shí)會(huì)跳過(guò)printf("running...\n");
    int sec_timeout = 3;
    int run_time = 2;

    printf("timeout = %d, run time = %d\n", sec_timeout, run_time);
    if (sec_timeout)
    {
        // 超過(guò)用alarm函數(shù)設(shè)置的時(shí)間時(shí)產(chǎn)生此信號(hào),調(diào)用connect_alarm函數(shù)
        signal(SIGALRM, connect_alarm);
        alarm(sec_timeout);
        printf("set timeout\n");
        if (sigsetjmp(jmp_env, 1))
        {
            printf("timeout\n");
            goto out;
        }
    }

    sleep(run_time);
    printf("running...\n");

out:
    if (sec_timeout)
    {
        // 取消先前設(shè)置的鬧鐘
        alarm(0);
        printf("cancel timeout\n");
    }

    return 0;
}


程序運(yùn)行:
當(dāng)ec_timeout = 3, run_time = 2時(shí):
timeout = 3, run_time = 2
set timeout
running...
cancel timeout

當(dāng)ec_timeout = 3, run_time = 4時(shí):
timeout = 3, run_time = 4
set timeout
timeout
cancel timeout

上一篇:C#中委托的基本用法總結(jié)

欄    目:C語(yǔ)言

下一篇:C語(yǔ)言中的BYTE和char深入解析

本文標(biāo)題:sigsetjmp的用法總結(jié)

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/4038.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有