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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

出错处理函数abort、exit、atexit、strerror

發布時間:2025/4/16 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 出错处理函数abort、exit、atexit、strerror 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
出錯處理函數abort、exit、atexit、strerror. . .2010-06-30 22:43摘要:本文詳細講述了幾個出錯處理的函數abort、exit、atexit、strerror函數的使用方法,并給出來具體的示例程序。 函數名: abort 功 能: 異常終止一個進程 用 法: void abort(void); 頭文件:#include 說明:abort函數是一個比較嚴重的函數,當調用它時,會導致程序異常終止, 而不會進行一些常規的清除工作,比如釋放內存等。 程序例: #include #include int main(void) { puts( "About to abort..../n" ); abort(); puts( "This will never be executed!/n" ); exit( EXIT_SUCCESS ); } [root@localhost error_process]# gcc abort.c [root@localhost error_process]# ./a.out About to abort.... 已放棄 ----------------------------------- 頭文件 #include定義函數 void exit(int status); exit()用來正常終結目前進程的執行,并把參數 status 返回給父進程, 而進程所有的緩沖區數據會自動寫回并關閉未關閉的文件。 它并不像abort那樣不做任何清理工作就退出,而是在完成所有的清理工作后才退出程序。 ---------------------------------------- atexit(設置程序正常結束前調用的函數) 頭文件 #include定義函數 int atexit (void (*function)(void)); 返回值 如果執行成功則返回 0,否則返回-1,失敗原因存于 errno 中。 atexit()用來設置一個程序正常結束前調用的函數。當程序通過調用 exit()或從 main 中返回時,參數 function 所指定的函數會先被 調用,然后才真正由 exit()結束程序。 很多時候我們需要在程序退出的時候做一些諸如釋放資源的操作,但程序退出的方式有很多種,比如main()函數運行結束、在程序的某個地方用exit() 結束程序、用戶通過Ctrl+C或Ctrl+break操作來終止程序等等,因此需要有一種與程序退出方式無關的方法來進行程序退出時的必要處理。方法就 是用atexit()函數來注冊程序正常終止時要被調用的函數。 atexit()函數的參數是一個函數指針,函數指針指向一個沒有參數也沒有返回值的函數。atexit()的函數原型是:int atexit (void (*)(void)); 在一個程序中最多可以用atexit()注冊32個處理函數,這些處理函數的調用順序與其注冊的順序相反,也即最先注冊的最后調用,最后注冊的最先調用。 #include #include void my_exit(void) { printf( "Before exit..../n" ); } int main(void) { atexit( my_exit ); return 0; } [root@localhost error_process]# gcc atexit.c [root@localhost error_process]# ./a.out Before exit.... ----------------------------------------------------- strerror(返回錯誤原因的描述字符串) 頭文件 #include定義函數 char * strerror(int errnum); strerror() 用來依參數 errnum 的錯誤代碼來查詢其錯誤原因的描述字符串,然后將該字符串指針返回。 這時如果把 errno 傳個strerror,就可以得到可讀的提示信息,而不再是一個冷冰冰的數字了。 返回值 返回描述錯誤原因的字符串指針。 #include #include int main(void) { int i; for ( i=0; i<10; i++ ) { printf( "%d:%s/n", i, strerror(i) ); } return 0; } [root@localhost error_process]# gcc strerror.c [root@localhost error_process]# ./a.out 0:Success 1:Operation not permitted 2:No such file or directory 3:No such process 4:Interrupted system call 5:Input/output error 6:No such device or address 7:Argument list too long 8:Exec format error 9:Bad file descriptor [root@localhost error_process]# http://hi.baidu.com/flyownway/blog/item/0cfb6703842d85ea08fa93b0.html ------------------------------------------------ 3.9 錯誤處理 正如我們已經看到的,本章介紹的許多系統調用和函數 都會因為各種各樣的原因而失敗。失敗時,它們會設置外部變量errno的值來指明失敗的原因。許多不同的函數庫都把這個變量用做報告錯誤的標準方法。我們 也反復告誡大家,程序必須在函數報告出錯之后立刻檢查errno變量,因為它可能被下一個函數調用所覆蓋,即使下一個函數自身并沒有出錯,也可能會覆蓋這 個變量。 錯誤代碼的取值和含義都列在頭文件errno.h里,其中包括: l EPERM:操作不允許。 l ENOENT:文件或目錄不存在。 l EINTR:系統調用被中斷。 l EIO:I/O錯誤。 l EBUSY:設備或資源忙。 l EEX IST:文件存在。 l EINVA L:無效參數。 l EMFILE:打開的文件過多。 l ENODEV:設備不存在。 l EISDIR:是一個目錄。 l ENOTDIR:不是一個目錄。 有兩個非常有用的函數可以用來報告出現的錯誤,它們是strerror和perror。 3.9.1 strerror函數 strerror函數把錯誤編碼映射為一個字符串,該字符串對發生的錯誤類型進行說明。這在記錄錯誤條件時十分有用。 函數原型如下: 3.9.2 perror函數 perror函數也把error變量中報告的當前錯誤映射到一個字符串,并把它輸出到標準錯誤輸出流。該字符串的前面先加上參數s(如果s不為空)給出的信息,再加上一個冒號和一個空格。 函數原型如下: 請看下面的例子: 它會在標準錯誤輸出中給出如下的輸出結果: http://hi.baidu.com/steven0821/blog/item/8c695112e67197f1c2ce7931.html

總結

以上是生活随笔為你收集整理的出错处理函数abort、exit、atexit、strerror的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人在线欧美 | 国产一二三区免费视频 | 男人天堂怡红院 | 激情综合激情五月 | 欧美视频在线观看一区二区三区 | 日韩欧美123 | 91视频高清 | jizz国产| 国产成人无码aa精品一区 | 精品xxxxx| 亚洲成人福利 | 欧美亚洲国产日韩 | 青青久久av北条麻妃黑人 | 中文字幕乱码亚洲无线三区 | 一区二区三区四区欧美 | 国产女主播一区二区 | 国产欧美综合视频 | 图片区亚洲| a级片久久| 久热色| 国产又黄又粗又猛又爽 | 校霸被c到爽夹震蛋上课高潮 | 国产精品av久久久久久无 | 国产精品天天干 | 91色站 | 国产少女免费观看高清 | 在线综合网 | 九九99视频 | 成人黄色片免费看 | av男人网 | 亚洲成人第一网站 | 中文字幕av在线 | 亚洲精品国产精品国自产在线 | 中国美女一级片 | 爱情岛论语亚洲入口 | 在线观看不卡av | 人人射人人干 | 最全aⅴ番号库网 | 午夜精品在线免费观看 | 在线日韩欧美 | 欧美日韩二区三区 | 国产精品久久毛片av大全日韩 | 精品国产av色一区二区深夜久久 | 九九欧美 | 色碰视频| 免费观看黄色网 | 国产黄色激情视频 | 国产欧美一区二区三区沐欲 | 99热91 | 欧美做爰全过程免费观看 | 亚洲高清色 | 中文字幕一区二区人妻痴汉电车 | 搞黄网站在线观看 | 日韩视频一区二区三区在线播放免费观看 | 欧美一区二区日韩 | 欧美视频福利 | 亚洲三级成人 | 精品人妻中文无码av在线 | 又黄又色又爽的视频 | 美女穴穴 | 亚洲欧洲日产av | 丁香婷婷在线观看 | 日日干日日 | 亚洲夜夜爱 | 未满十八18禁止免费无码网站 | 91精品国产91久久久久久久久久久久 | 亚洲国产精品综合 | 中文字幕在线视频日韩 | 三级小视频在线观看 | 色福利在线 | 亚洲一级淫片 | 国产主播中文字幕 | 深夜福利视频在线观看 | 亚洲少妇一区 | 久久手机免费视频 | 无码人妻精品丰满熟人区 | 午夜免费成人 | 亚洲乱码久久 | 中文字字幕在线中文乱码 | 日本无遮羞调教打屁股网站 | 黄色片链接 | 性欧美成人播放77777 | 成人激情小视频 | 美国三级a三级18 | 一级黄色短视频 | 国产中文字幕在线 | www.婷婷色| 亚洲黄色小说图片 | jizzzz中国| 免费毛片视频网站 | 妺妺窝人体色777777 | 国外成人性视频免费 | 国产视频久久 | 成人在线91| 奇米色777| 欧美成人秋霞久久aa片 | 女人叫床高潮娇喘声录音mp3 | 国产无遮挡a片又黄又爽 | 日韩福利在线观看 |