我在 VxWorks PPC 上运行我的代码,如果系统调用失败,尤其是对于套接字发送/接收函数,errno 总是返回 0。
经过一些分析,我发现 errno 在所有系统调用失败的情况下返回 0。
我应该为 errno 做任何初始化以返回正确的值吗?
从外壳(内核或主机)中,如果您键入“i”命令,您将获得任务列表。其中一个字段是 errno 值。找到有错误的任务,并设置 errno 值。
检查 errno 时,您必须处于导致错误的同一任务中:
if(ERROR = someSystemFunction())
printf("errno=%x", errno);
您不能在 shell 中并期望打印 errno
-> errno (<---- will NEVER work)
errno:0x123455 value: 0 = 0x0
errnoGet() 将返回执行它的任务的 errno。请参阅 errnoLib 上的文档以检索不同任务的 errno