已包含下面的头文件
#include <netinet/in.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <asm/ioctl.h>
#include <sys/select.h>
#include <sys/errno.h>
但下面的语句编译不过,提示找不到FIONBIO
#include <netinet/in.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <asm/ioctl.h>
#include <sys/select.h>
#include <sys/errno.h>
但下面的语句编译不过,提示找不到FIONBIO
if ((err=IOCtlSock(ListeningSocket, FIONBIO, &arg)) == SOCKET_ERROR)
或者是
执行ioctl(sndsock, FIONBIO, &ul);
解决方法:
只要加入了下面的文件的包含,就可以了。
#include <sys/ioctl.h>
而上面的文件其实是包含了#include <asm/ioctls.h>。但是我们用的时候一般是不包含asm下的头文件。