繁体   English   中英

如何在Windows和MinGW上使用“ fcntl”?

[英]How use 'fcntl' on Windows with and MinGW?

我正在尝试移植TCP应用程序(特别是tcpsockets ),但是我收到此错误:

错误:在此范围内未声明“ fcntl”

我已经写了那些包括

#ifdef WIN32
#define _WIN32_WINNT  0x0600 //enable

#include <Ws2tcpip.h>
#pragma comment(lib, "ws2_32.lib")

typedef int socklen_t;
void close(int socket){closesocket(socket);}

#else

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#endif

解决了大部分参考文献,但是未找到fcntl 如何找到正确的参考? 还是naybe还有另一种可以替代它的Windows方法?

不知道为什么要尝试使用本机套接字。 但是,如果没有真正的原因,请改用QTcpSocket 它是套接字的Qt类,可在所有平台上使用。

在Windows上不存在fctrl() 对于套接字,等效功能是ioctlsocket() 但是,Linux中套接字上的文件控件与Windows中的文件控件有很大不同,因此并非您正在使用的所有fctrl()命令都可以移植到Windows,或者可能需要不同的API。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM