errno 在 VxWorks PPC 中总是返回零
Posted
技术标签:
【中文标题】errno 在 VxWorks PPC 中总是返回零【英文标题】:errno returns zero always in VxWorks PPC 【发布时间】:2010-03-26 15:36:01 【问题描述】:我在 VxWorks PPC 上运行我的代码,如果系统调用失败,尤其是对于套接字发送/接收函数,errno 总是返回 0。
经过一些分析我发现,如果所有系统调用失败,errno 返回 0。
为了让 errno 返回正确的值,我应该做任何初始化吗?
【问题讨论】:
您是否包括了“<errno.h>
”而不是“extern int errno;
”?您是否从系统调用中得到错误指示? errno
变量不会被库归零,但仅在系统调用返回错误指示时才相关。
是的。我包括 从外壳(内核或主机)中,如果您键入“i”命令,您将获得任务列表。其中一个字段是 errno 值。找到有错误的任务,设置errno值。
检查 errno 时,您必须处于导致错误的同一任务中:
if(ERROR = someSystemFunction())
printf("errno=%x", errno);
你不能在 shell 中期望打印 errno
-> errno (<---- will NEVER work)
errno:0x123455 value: 0 = 0x0
【讨论】:
【参考方案2】:errnoGet() 将返回执行它的任务的 errno。 请参阅 errnoLib 上的文档以检索不同任务的 errno
【讨论】:
以上是关于errno 在 VxWorks PPC 中总是返回零的主要内容,如果未能解决你的问题,请参考以下文章