通过一个小的测试程序(在Linux上用mingw编译),我注意到不能使用调用的Winsock2的socket
实现获得的套接字fd上的read
和write
调用。写入调用返回< 0并设置errno = EBADF。winsock不支持读/写
想象一下从xinetd运行的程序,减去他们的stdin/stdout始终是套接字的假设。 (有些程序确实调用了getpeername,例如,如果它不是套接字,将会失败,随后它们可能会提前退出。)
那么如何{文件描述符类型} - 只读取/写入标准输入/ stdout应该合理地在win32环境中工作,除非对fd做出假设?
或者更简单的说,是否有一些神奇的函数调用来执行Winsock2 socket fds与win32(well,mingw)write
的实现?
啊cygwin,很好的电话,感谢提醒我它的存在。我想知道是否可以直接交叉编译,也就是说,不需要使用wine来运行cygwin gcc。 – user562374 2011-01-24 02:40:43