linux 中的 sys/ioctl.h 问题

Posted

技术标签:

【中文标题】linux 中的 sys/ioctl.h 问题【英文标题】:sys/ioctl.h issues in linux 【发布时间】:2012-07-08 02:28:23 【问题描述】:

所以我在 Windows 和 MacOSX 上有一个已知工作版本的代码:

int CSocket::setsync(int mode)

    if(sockid < 0)return -1;
    u_long i = mode;
    return ioctlsocket(sockid, FIONBIO, &i);

我只想知道下面的Linux版本在功能上是否等效:

int CSocket::setsync(int mode)

    if(sockid < 0)return -1;
    u_long i = mode;
    return ioctl(sockid, FIONBIO, &i);

仅供参考,我 #included sys/ioctl.h

【问题讨论】:

什么?不,我使用了 #include 这一行 查看UNIX nonblocking I/O: O_NONBLOCK vs. FIONBIO 以获得在Linux 上使用fcntl 的更好替代方案。 This one也很有意思。 【参考方案1】:

所以我回答了我自己的问题。据我所知,他们是。至少,代码似乎可以正常工作。如果您想查看实际代码,请在 https://github.com/nterry/39DLL-4-Linux 处克隆代码

【讨论】:

以上是关于linux 中的 sys/ioctl.h 问题的主要内容,如果未能解决你的问题,请参考以下文章

Camera[2] ioctl访问摄像头驱动

linux使用framebuffer的代码

ioctl()获取本地网卡设备信息

Linux网络常用头文件说明

Linux下利用ioctl函数获取网卡信息

ioctl函数,可以获取ip地址,修改ip地址,网卡地址等