错误状态库: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符号表