linux 出錯(cuò)處理
常用的內(nèi)容如下:
l <assert.h>中支持assert()函數(shù),注意,assert()檢查發(fā)現(xiàn)條件不成立時(shí)調(diào)用abort()終止程序執(zhí)行,應(yīng)用程序沒(méi)有機(jī)會(huì)做清除工作。
l C標(biāo)準(zhǔn)定義了__LINE__和__FILE__宏,GNU C擴(kuò)展中定義了__FUNCTION__宏。
l <errno.h>中定義了errno,注意沒(méi)有函數(shù)會(huì)將errno清零,所以在調(diào)用可能設(shè)置errno的函數(shù)之前先將errno清零。
l <stdlib.h>中定義了abort()、exit()和atexit()函數(shù)。
l 函數(shù)abort()將導(dǎo)致程序異常終止,在終止前程序沒(méi)有機(jī)會(huì)執(zhí)行atexit()登記的函數(shù),也沒(méi)有計(jì)劃執(zhí)行一些常規(guī)的清除工作。同時(shí),abort()還會(huì)產(chǎn)生core dump,如果沒(méi)有ulimit限制的話。
l 函數(shù)exit()和abort()類似,但它在完成清理工作之后才終止程序。
l 函數(shù)atexit()登記在程序正常終止時(shí)要調(diào)用的函數(shù)。
l <stdio.h>中定義了perror(),<string.h>中定義了strerror()。
l <syslog.h>中定義了syslogd的接口。
同樣的情況下,windows下錯(cuò)誤用的是getlasterror( )