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