vxworks 5.5.1中的posix socket api有一个奇怪的问题。代码是微不足道的,可能不是很有趣(在下面添加),但它的要点是:在与调用{{1}的单独函数中调用socket()
和bind()
时1}},页面故障发生在recvfrom()
电话。如果一切都在同一个功能完成,它工作正常。请注意,在调用recvfrom()
时会立即发生故障,而不是在数据包到达时发生。
VxWorks是否会以某种意外的方式为此API使用堆栈?
编辑:添加了一些代码。 recvfrom()
函数工作正常,但te_serve1()
(使用辅助函数)不能。
te_serve_one()
答案 0 :(得分:0)
settup()声明跟随local:
struct sockaddr_in addr;
如果你声明" struct sockaddr_in addr;"会发生什么?在te_serve_one()中并将其传递给setup()?
答案 1 :(得分:0)
查看优化的程序集,我意识到sock
变量被ret
覆盖,此时该变量未使用并初始化为零。出色。