gpt4 book ai didi

c++ - 我如何使用 ioctl() 在 VxWorks 的套接字上设置 FIONBIO?

转载 作者:行者123 更新时间:2023-11-30 03:00:51 25 4
gpt4 key购买 nike

VxWorks 设置 FIONBIO 的标准方法是使用 ioctl(),而不是 fcntl()。 FIONBIO 的文档给出了这个例子,显然不会编译,因为 on 没有数据类型:

on = TRUE;
status = ioctl (sFd, FIONBIO, &on);

我在网络上看到过这样的用法示例(本质上是一样的):

int on = 1;
ioctl(fd, FIONBIO, &on);

但是,文档说 ioctl() 的原型(prototype)是 ioctl(int, int, int),我收到无法转换 int 的错误*int。如果我将值作为 int 传递,我只会得到一个致命的内核任务级异常。

这是我当前的代码:

int SetBlocking(int sockfd, bool blocking)
{
int nonblock = !blocking;
return ioctl(sockfd, FIONBIO, &nonblock);
}

返回错误:

error: invalid conversion from `int*' to `int'
initializing argument 3 of `int ioctl(int, int, int)'

最佳答案

关于c++ - 我如何使用 ioctl() 在 VxWorks 的套接字上设置 FIONBIO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11654182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com