【发布时间】: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也很有意思。
标签: c++ linux macos sockets ioctl