2011-04-16 42 views
2

我已經從linux計算機更改爲Windows,並且無法編譯我的代碼,因爲這兩個操作系統不共享相同的頭文件。寫函數需要Unix上的unistd.h,那麼windows呢?

由於unistd.h中不包含明顯,視覺C不知道什麼read()write()close()socklen_t()bzero()功能。誰能幫我這個?

我GOOGLE了這一點:Is there a replacement for unistd.h for Windows (Visual C)?

我不知道如何unistd.h中的作品,我也不知道怎麼我自己的代碼。有人可以將我鏈接到一個嗎?

+0

在鏈接問題的接受答案中的unistd.h替換有什麼問題? – AShelly 2011-04-26 13:49:07

回答

2

最好的辦法是使用MinGW來編譯該程序,其中包括(除其他外)GCC(及其頭文件)。嘗試安裝,然後編譯你的程序,看看是否一切正常。

+0

對不起,我是新來的Visual C ...我一直在通過它的調試(F5)編譯我的代碼,我如何將它更改爲Visual C來使用MinGW? – stockoverflow 2011-04-16 05:43:58

+0

@stockoverflow我不知道有什麼方法可以將Visual Studio與MinGW集成。您可以像在Linux中一樣使用MinGW編譯程序 - 從命令行通常使用相同的命令。 – 2011-04-16 05:45:36

+0

好吧,命令提示符與linux上的終端相同吧? – stockoverflow 2011-04-16 05:53:43

9

read,writeclose<io.h>,就像他們傳統上在Unix上一樣。

不速之客,我不知道bzero被包含在Windows中 - 如果你關心可移植性,你通常想用memset來代替。

socklen_t不正常在Windows上使用 - 大多數事情,這將是socklen_t在Unix在Windows上使用(socklen_t在Unix上,目前的另一個引用相同的基礎類型size_t,在情況下,它可能增加或者size_tint有一天會有用 - 也就是尋找問題的解決方案)。

相關問題