日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

signal c语言,C 库函数

發(fā)布時(shí)間:2025/3/20 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 signal c语言,C 库函数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C 庫(kù)函數(shù) - signal()

描述

C 庫(kù)函數(shù) void (*signal(int sig, void (*func)(int)))(int) 設(shè)置一個(gè)函數(shù)來(lái)處理信號(hào),即帶有 sig 參數(shù)的信號(hào)處理程序。

聲明

下面是 signal() 函數(shù)的聲明。

void (*signal(int sig, void (*func)(int)))(int)

參數(shù)

sig -- 在信號(hào)處理程序中作為變量使用的信號(hào)碼。下面是一些重要的標(biāo)準(zhǔn)信號(hào)常量:

宏信號(hào)

SIGABRT(Signal Abort) 程序異常終止。

SIGFPE(Signal Floating-Point Exception) 算術(shù)運(yùn)算出錯(cuò),如除數(shù)為 0 或溢出(不一定是浮點(diǎn)運(yùn)算)。

SIGILL(Signal Illegal Instruction) 非法函數(shù)映象,如非法指令,通常是由于代碼中的某個(gè)變體或者嘗試執(zhí)行數(shù)據(jù)導(dǎo)致的。

SIGINT(Signal Interrupt) 中斷信號(hào),如 ctrl-C,通常由用戶生成。

SIGSEGV(Signal Segmentation Violation) 非法訪問(wèn)存儲(chǔ)器,如訪問(wèn)不存在的內(nèi)存單元。

SIGTERM(Signal Terminate) 發(fā)送給本程序的終止請(qǐng)求信號(hào)。

func -- 一個(gè)指向函數(shù)的指針。它可以是一個(gè)由程序定義的函數(shù),也可以是下面預(yù)定義函數(shù)之一:

SIG_DFL默認(rèn)的信號(hào)處理程序。

SIG_IGN忽視信號(hào)。

返回值

該函數(shù)返回信號(hào)處理程序之前的值,當(dāng)發(fā)生錯(cuò)誤時(shí)返回 SIG_ERR。

實(shí)例

下面的實(shí)例演示了 signal() 函數(shù)的用法。

#include

#include

#include

#include

void sighandler(int);

int main()

{

signal(SIGINT, sighandler);

while(1)

{

printf("開(kāi)始休眠一秒鐘...\n");

sleep(1);

}

return(0);

}

void sighandler(int signum)

{

printf("捕獲信號(hào) %d,跳出...\n", signum);

exit(1);

}

讓我們編譯并運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果,且程序會(huì)進(jìn)入無(wú)限循環(huán),需使用 CTRL + C 鍵跳出程序。

開(kāi)始休眠一秒鐘...

開(kāi)始休眠一秒鐘...

開(kāi)始休眠一秒鐘...

開(kāi)始休眠一秒鐘...

開(kāi)始休眠一秒鐘...

捕獲信號(hào) 2,跳出...

總結(jié)

以上是生活随笔為你收集整理的signal c语言,C 库函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。