亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

進程環境之進程終止

2024-06-28 13:28:38
字體:
來源:轉載
供稿:網友
進程環境之進程終止

有8種方式使進程終止(termination),其中5種為正常終止,它們是:

(1)從main返回。

(2)調用exit。

(3)調用_exit或_Exit。

(4)最后一個線程從其啟動例程返回。

(5)最后一個線程調用pthread_exit。

異常終止有3種方式,它們是:

(6)調用abort。

(7)接到一個信號并終止。

(8)最后一個線程對取消請求作出響應。

啟動例程是這樣編寫的,使得從main返回后立即調用exit函數。(關于啟動例程:http://learn.akae.cn/media/ch19s02.html)。如果將啟動例程以C代碼形式表示(實際上該例程常常用匯編語言編寫),則它調用main函數的形式可能是:

exit( main( argc, argv ) );

1、exit函數

有三個函數用于正常終止一個程序:_exit和_Exit立即進入內核,exit則先執行一些清理處理(包括調用執行各終止處理程序,關閉所有標準I/O流等),然后進入內核。

#include <stdlib.h>void exit( int status );void _Exit( int status );#include <unistd.h>void _exit( int status );

exit函數總是執行一個標準I/O庫的清理關閉操作:為所有打開流調用fclose函數。這會造成所有緩沖的輸出數據都被沖洗(寫到文件上)。

三個exit函數都帶一個整型參數,稱為終止狀態(或退出狀態,exit status)。大多數UNIX shell都提供檢查進程終止狀態的方法。如果(a)若調用這些函數時不帶終止狀態,或(b)main執行了一個無返回值的return語句,或(c)main沒有聲明返回類型為整型,則該進程的終止狀態是未定義的。但是,若main的返回類型是整型,并且main執行到最后一條語句時返回(隱式返回),那么該進程的終止狀態是0。

main函數返回一整型值與用該值調用exit是等價的。于是在main函數中

exit(0); 等價于 return(0);

2、atexit函數

按照ISO C規定,一個進程可以登記多達32個函數,這些函數將由exit自動調用。我們稱這些函數為終止處理程序(exit handler),并調用atexit函數來登記這些函數。

#include <stdlib.h>int atexit( void (*func)(void) );返回值:若成功則返回0,若出錯則返回非0值

其中,atexit的參數是一個函數地址,當調用此函數時無需向它傳遞任何參數,也不期望它返回一個值。exit調用這些函數的順序與它們登記時候的順序相反。同一函數若登記多次,則也會被調用多次。

根據ISO C和POSIX.1,exit首先調用各終止處理程序,然后按需要多次調用fclose,關閉所有打開流。POSIX.1擴展了ISO C標準,它指定如若程序調用exec函數族中的任一函數,則將清除所有已安裝的終止處理程序。圖7-1顯示了一個C程序是如何啟動的,以及它可以終止的各種方式。

09181403-28ffb6e7cceb4e809f1336f6deb4eb31

從上圖我們可以總結出exit和_exit的區別如下圖(詳情請參考http://www.CUOXin.com/mickole/p/3186606.html):

注意,內核使程序執行的唯一方法是調用一個exec函數。進程自愿終止的唯一方法是顯式或隱式地(通過調用exit)調用_exit或_Exit。進程也可非自愿地由一個信號使其終止。

程序清單7-2 終止處理程序實例

[root@localhost apue]# cat PRog7-2.c#include "apue.h"static void my_exit1(void);static void my_exit2(void);intmain(void){        if(atexit(my_exit2) != 0)                err_sys("can't register my_exit2");        if(atexit(my_exit1) != 0)                err_sys("can't register my_exit1");        if(atexit(my_exit1) != 0)                err_sys("can't register my_exit1");        printf("main is done/n");        return(0);}static voidmy_exit1(void){        printf("first exit handler/n");}static voidmy_exit2(void){        printf("second exit handler/n");}

執行該程序產生:

[root@localhost apue]# ./prog7-2main is donefirst exit handlerfirst exit handlersecond exit handler

終止處理程序每登記一次,就會被調用一次。在程序清單7-2中,第一個終止處理程序被登記兩次,所以也會被調用兩次。

本篇博文內容摘自《UNIX環境高級編程》(第二版),僅作個人學習記錄所用。關于本書可參考:http://www.apuebook.com/。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品草莓在线免费观看| 国内精品久久久久伊人av| 久久久亚洲国产天美传媒修理工| 国产精品视频白浆免费视频| 亚洲国产另类 国产精品国产免费| 久久精品国产亚洲精品| 国产精品一区二区三区毛片淫片| 亚洲网址你懂得| 中文字幕在线看视频国产欧美在线看完整| 日韩电影网在线| 蜜月aⅴ免费一区二区三区| 日本一区二三区好的精华液| 欧美日韩国产色| 色综合天天综合网国产成人网| 国产一区二区三区视频| 亚洲欧洲国产伦综合| 国产成人一区二区在线| 国产精品久久久久久久久久久久| 久久99久久99精品中文字幕| 日韩国产欧美区| 欧美在线一区二区三区四| 亚州精品天堂中文字幕| 欧美老妇交乱视频| 日韩激情视频在线播放| 久久久精品亚洲| 91精品啪在线观看麻豆免费| 国产一区二区三区在线免费观看| 国产99久久精品一区二区永久免费| 97成人超碰免| 日韩电影免费观看在线观看| 国产欧美精品xxxx另类| 尤物tv国产一区| 亚洲人成电影网站色…| 日本国产欧美一区二区三区| 91最新在线免费观看| 欧美性猛交xxxx偷拍洗澡| 欧美一级黑人aaaaaaa做受| 亚洲成av人片在线观看香蕉| 亚洲另类欧美自拍| 欧美大人香蕉在线| 伊人伊成久久人综合网站| 国产精品91久久久久久| 欧美在线国产精品| 中文字幕不卡av| 欧美在线视频网| 亚洲精品动漫100p| 欧美日本高清视频| 欧美体内谢she精2性欧美| 国产精品视频一区二区高潮| 狠狠色狠狠色综合日日小说| 精品国产999| 成人免费视频在线观看超级碰| 中文字幕亚洲欧美在线| 尤物tv国产一区| 亚洲一区制服诱惑| 久久久久日韩精品久久久男男| 日韩美女在线播放| 免费97视频在线精品国自产拍| 亚洲欧美三级伦理| 中文字幕视频在线免费欧美日韩综合在线看| 91精品国产高清久久久久久久久| 午夜精品一区二区三区在线| 久久久久亚洲精品国产| 欧美日韩成人黄色| 91久久久久久久一区二区| 国产精品日韩专区| 国产有码在线一区二区视频| 亚洲精品永久免费精品| 曰本色欧美视频在线| 中文字幕日韩精品在线观看| 精品久久久久久久久久国产| 日韩av电影在线播放| 亚洲女性裸体视频| 成人午夜激情免费视频| 国产精品jizz在线观看麻豆| 97视频在线看| 久久亚洲国产精品成人av秋霞| 欧美激情在线视频二区| 亚洲午夜国产成人av电影男同| 一个色综合导航| 精品日韩中文字幕| 亚洲自拍另类欧美丝袜| 日韩av高清不卡| 亚洲桃花岛网站| 欧美日韩在线视频首页| 亚洲二区在线播放视频| 亚洲成人久久电影| 日韩精品在线观看视频| 欧美xxxx18国产| 国产精品入口免费视频一| 北条麻妃一区二区在线观看| 国产精品自产拍在线观看中文| 一区二区三区久久精品| 国产欧美一区二区三区久久| 亚洲理论电影网| 亚洲一区二区中文字幕| 国产精品www色诱视频| 97国产精品久久| 欧美性猛交xxxx乱大交3| 日本韩国欧美精品大片卡二| 欧美一级大胆视频| 91禁国产网站| 亚洲一区二区免费在线| 亚洲一区二区黄| 欧美精品久久久久久久久| 亚洲精品永久免费精品| 日韩中文在线中文网三级| 亚洲免费视频在线观看| 国产欧美日韩精品在线观看| 欧美高清在线视频观看不卡| 久久免费视频在线观看| 68精品国产免费久久久久久婷婷| 精品国产一区二区三区四区在线观看| 日韩久久精品成人| 日韩暖暖在线视频| 日韩在线视频二区| 视频在线一区二区| 亚洲第一视频网站| 亚洲第一精品电影| 中文字幕av一区| 国产精品久久久久久久久久尿| 精品久久久久久久久中文字幕| 精品国产区一区二区三区在线观看| 欧美猛交ⅹxxx乱大交视频| 日本精品视频网站| 欧美大片va欧美在线播放| 亚洲色图偷窥自拍| 57pao成人国产永久免费| 精品二区三区线观看| 91欧美精品午夜性色福利在线| 亚洲国产精品视频在线观看| 91精品国产精品| 欧美二区在线播放| 欧美裸体视频网站| 日韩在线高清视频| 国产精品揄拍500视频| 国产欧美日韩精品丝袜高跟鞋| 97av视频在线| 国产精品一区二区三区久久| 日韩免费中文字幕| 欧美成人在线网站| 欧美成人午夜激情视频| 91久久在线观看| 成人黄色av播放免费| 日韩电影免费观看在线| 亚洲欧洲一区二区三区在线观看| 95av在线视频| 亚洲精品综合精品自拍| 欧美性猛交xxxxx免费看| 欧美成人免费全部观看天天性色| 亚洲男人的天堂在线播放| 97人洗澡人人免费公开视频碰碰碰| 亚洲精品网站在线播放gif| 久久综合伊人77777蜜臀| 亚洲永久免费观看| 中文字幕日韩在线播放| 久久五月情影视| 国产精品视频免费观看www| 88国产精品欧美一区二区三区| 欧美高清视频免费观看| 亚洲一区美女视频在线观看免费| 欧美理论片在线观看| 国产午夜精品免费一区二区三区| 在线电影欧美日韩一区二区私密|