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