在Unix上写函数需要unistd.h,windows怎么样?

时间:2011-04-16 05:27:59

标签: c windows visual-studio posix unistd.h

我已经从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是如何工作的,也不知道如何编写自己的代码。有人可以把我链接到一个吗?

2 个答案:

答案 0 :(得分:10)

readwriteclose位于<io.h>,就像传统上在Unix上一样。

另一方面,我根本不知道Windows中包含bzero - 如果您完全关心可移植性,通常需要使用memset

Windows上通常不会使用

socklen_t - 在Unix上使用socklen_t的大多数内容在Windows上使用size_tintsocklen_t在Unix上,目前是对size_t相同底层类型的另一个引用,如果它有朝一日可能有用 - 也就是搜索问题的解决方案。

答案 1 :(得分:2)

最好的办法是使用MinGW编译程序,其中包括(其中包括)GCC(及其标题)。尝试安装,然后编译您的程序,看看一切是否正常。