錯誤狀態庫:errnoLib
vxworks的errno值由4字節組成,高字節表示發生錯誤的庫,我們可以從target/src/vwModNum.h查看。低字節表示庫的具體錯誤,在相應的庫的頭文件中定義。
獲取errno
錯誤發生時,可以通過shell獲取errno的值。例如可以通過命令i的獲取的任務列表中的ERRNO項表示任務最近調用庫發生的錯誤的errno值。
解釋ERRNO
如果shell中不支持printErrno,也可以手動查找頭文件找到錯誤信息。“d0009”,在vwModNUm.h查找d對應的庫,d十進制爲13,找到
#define M_iosLib (13 << 16)
再去iosLib庫的頭文件中去找具體錯誤。其中0009對應的宏定義是這樣的:
#define S_iosLib_INVALID_FILE_DESCRIPTOR EBADF /* NOSTATTBL */
INVALID_FILE_DESCRIPTOR就是用戶要知道的錯誤信息
參考:vxworks程序開發實踐 3.4符號表