通過一個小的測試程序(在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