我已经从Linux计算机更改为Windows并且我在编译代码时遇到问题,因为这两个操作系统不共享相同的头文件。
由于unistd.h显然不包含在内,因此Visual C不知道read()
,write()
,close()
,socklen_t()
和bzero()
函数是什么是。任何人都可以帮我这个吗?
我用Google搜索了这个:Is there a replacement for unistd.h for Windows (Visual C)?
我不知道unistd.h是如何工作的,也不知道如何编写自己的代码。有人可以把我链接到一个吗?
答案 0 :(得分:10)
read
,write
和close
位于<io.h>
,就像传统上在Unix上一样。
另一方面,我根本不知道Windows中包含bzero
- 如果您完全关心可移植性,通常需要使用memset
。
socklen_t
- 在Unix上使用socklen_t
的大多数内容在Windows上使用size_t
或int
(socklen_t
在Unix上,目前是对size_t
相同底层类型的另一个引用,如果它有朝一日可能有用 - 也就是搜索问题的解决方案。
答案 1 :(得分:2)
最好的办法是使用MinGW编译程序,其中包括(其中包括)GCC(及其标题)。尝试安装,然后编译您的程序,看看一切是否正常。