成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

c語(yǔ)言信號(hào)處理函數(shù) C語(yǔ)言信號(hào)量

C語(yǔ)言中的signal函數(shù)的作用是什么啊

signal()是一種系統(tǒng)調(diào)用,用于通知運(yùn)行時(shí)系統(tǒng),當(dāng)某種特定的“軟件中斷”發(fā)生時(shí)調(diào)用特定的程序。它的真正的名字應(yīng)該是“Call_that_routine_when_this_interrupt_Comes_in(當(dāng)該中斷發(fā)生時(shí)調(diào)用那個(gè)程序)”,調(diào)用signal()函數(shù),并通過(guò)參數(shù)傳遞告訴它終端類(lèi)型以及用于處理中斷的程序。

成都創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專(zhuān)注重慶網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),有關(guān)成都企業(yè)網(wǎng)站定制方案、改版、費(fèi)用等問(wèn)題,行業(yè)涉及成都人造霧等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶(hù)的尊重與認(rèn)可。

ANSIC 標(biāo)準(zhǔn)中,signal()函數(shù)的聲明如下:

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

signal是一個(gè)函數(shù),他返回一個(gè)函數(shù)指針,后者所指向的函數(shù)接受一個(gè)int參數(shù)并返回void 。

C語(yǔ)言中的exit函數(shù)

exit()通常是用在子程序中用來(lái)終結(jié)程序用的,使用后程序自動(dòng)結(jié)束,跳回操作系統(tǒng)。

在c語(yǔ)言中: exit(0):表示正常退出;exit(1):表示異常退出,這個(gè)1是返回給操作系統(tǒng);值是返回操作系統(tǒng)的:0是正常退出,而其他值都是異常退出,所以我們?cè)谠O(shè)計(jì)程序時(shí),可以在推出前給一些小的提示信息,或者在調(diào)試程序的過(guò)程中查看出錯(cuò)原因。

使用exit()時(shí),可以不論main()的返回值類(lèi)型,它的頭文件是 stdlib.h。

擴(kuò)展資料:

進(jìn)程函數(shù):所在函數(shù)庫(kù)為stdlib.h、process.h

void abort() 此函數(shù)通過(guò)調(diào)用具有出口代碼3的_exit寫(xiě)一個(gè)終止信息于stderr,并異常終止程序 無(wú)返回值。

void _exit(int status)終止當(dāng)前程序,但不清理現(xiàn)場(chǎng)。

void exit(int status) 終止當(dāng)前程序,關(guān)閉所有文件,寫(xiě)緩沖區(qū)的輸出(等待輸出),并調(diào)用任何寄存器的"出口函數(shù)",無(wú)返回值。

參考資料:百度百科-C語(yǔ)言函數(shù)

C語(yǔ)言中(void)signal(SIGALRM, alarmhandle);是什么意思

signal(SIGALRM, alarmhandle); 表示給當(dāng)前進(jìn)程注冊(cè)SIGALRM信號(hào)處理代碼,如果收到SIGALRM信號(hào),就會(huì)去執(zhí)行alarmhandle函數(shù)

$?man?signal

...

SYNOPSIS

#include?signal.h

typedef?void?(*sighandler_t)(int);

sighandler_t?signal(int?signum,?sighandler_t?handler);

DESCRIPTION

The??signal()?system?call?installs?a?new?signal?handler?for?the?signal?with?number?signum.??The?signal?handler?is?set?to?sighandler?which?may?be?a?user?specified?function,?or?either?SIG_IGN?or?SIG_DFL.

signal()函數(shù)是個(gè)系統(tǒng)調(diào)用,該函數(shù)按signum設(shè)定一個(gè)新的信號(hào)處理句柄(函數(shù)).新設(shè)定的處理函數(shù)可以是用戶(hù)自定義的函數(shù),也可以是系統(tǒng)指定的SIG_IGN?或?SIG_DFL.

參考代碼:

#include?signal.h

#include?unistd.h

#include?stdio.h

#include?stdlib.h

void?alarmhandle(int?sig)

{

printf("recv?sig:%d\n",?sig?);

printf("exit!\n");

exit(0);

}

int?main()

{

signal(?SIGALRM,?alarmhandle?);

printf("begin...\n");

alarm(5);?//定時(shí)器,用于在5秒后產(chǎn)生SIGALRM信號(hào)

while(?1?);

return?0;

}

運(yùn)行結(jié)果:

begin...

recv sig:14

exit!

C語(yǔ)言中信號(hào)問(wèn)題

信號(hào)是程序執(zhí)行過(guò)程中出現(xiàn)的異常情況。它可能是由程序中的錯(cuò)誤造成的,例如引用內(nèi)存中的一個(gè)非法地址;或者是由程序數(shù)據(jù)中的錯(cuò)誤造成的,例如浮點(diǎn)數(shù)被0除;或者是由外部事件引發(fā)的,例如用戶(hù)按了Ctrl+Break鍵。

你可以利用標(biāo)準(zhǔn)庫(kù)函數(shù)signal()指定要對(duì)這些異常情況采取的處理措施(實(shí)施處理措施的函數(shù)被稱(chēng)為“信號(hào)處理函數(shù)”)。signal()的原型為:

#include signal.h

void(*signal(int hum,void(*func)(int)))(int);

如果定義一個(gè)typedef,理解起來(lái)就容易一些了。下面給出的sigHandler_t類(lèi)型是指向一個(gè)程序的指針,該函數(shù)有一個(gè)int類(lèi)型的參數(shù),并且返回一個(gè)void類(lèi)型:

typedef void(*sigHandler_t)(int);

sigHandler_t signal(int num , sigHandler_t func);

signal()有兩個(gè)參數(shù),分別為int類(lèi)型和sigHandler_t類(lèi)型,其返回值為sigHandler_t類(lèi)型。以func參數(shù)形式傳遞給signal()的那個(gè)函數(shù)將成為第num號(hào)異常情況的新的信號(hào)處理函數(shù)。signal()的返回值是信號(hào)hum原來(lái)的信號(hào)處理函數(shù)。在設(shè)置了一個(gè)暫時(shí)的信號(hào)處理函數(shù)之后,你可以利用該值恢復(fù)程序先前的行為。num的可能值依賴(lài)于系統(tǒng),并且在signal.h中列出。func的可能值可以是你的程序中的任意函數(shù),或者是SIG_DFL和SLG_IGN這兩個(gè)特別定義的值之一。SIG_DFL是指系統(tǒng)的缺省處理措施,通常是暫停執(zhí)行程序;SIG_IGN表示信號(hào)將被忽略。

當(dāng)前標(biāo)題:c語(yǔ)言信號(hào)處理函數(shù) C語(yǔ)言信號(hào)量
文章轉(zhuǎn)載:http://jinyejixie.com/article10/dodoedo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)搜索引擎優(yōu)化、微信小程序、App開(kāi)發(fā)、定制開(kāi)發(fā)虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
县级市| 贵定县| 南平市| 开江县| 景洪市| 历史| 治多县| 岢岚县| 柳林县| 北辰区| 礼泉县| 屯昌县| 沧源| 周至县| 新乡市| 讷河市| 泸州市| 锡林浩特市| 河北省| 界首市| 邵阳县| 堆龙德庆县| 汶上县| 河池市| 工布江达县| 柏乡县| 葫芦岛市| 灵宝市| 唐河县| 玉环县| 惠安县| 乐安县| 闸北区| 横峰县| 景东| 扎赉特旗| 阜宁县| 红桥区| 刚察县| 黄冈市| 襄汾县|