Visual Studio 2010的替代unistd.h头文件

时间:2011-06-15 22:13:42

标签: c visual-studio-2010

我正在编译Visual Studio 2010中包含头文件unistd.h的代码。由于Windows对头文件unistd.h没有任何支持,我正在寻找替代头文件,或者有任何方法可以自定义它,以便我也可以在Visual Studio中编译它。

3 个答案:

答案 0 :(得分:9)

尝试包含io.h,它相当于MSVC中的unistd.h。如果你想保持兼容性,试试这个:

#ifdef _WIN32
#include <io.h>
#else
#include <unistd.h>
#endif

答案 1 :(得分:4)

你最好的选择,不是试图在Windows中使用不合适的头文件,而只是删除该行:

#include <unistd.h>

然后尝试编译你的代码。

你可能会发现(如果你非常幸运),它根本不使用任何功能。

但是,更有可能的是,它将从该标头和任何相关库中使用某些内容,您需要实现这些或找到Windows等效项。

如果您希望尽可能保持代码的可移植性,我会创建一个WindowsUniStd.h文件(以及一个相关的源文件)来实现程序所需的最低限度。

答案 2 :(得分:0)

如果您需要具有unistd.h某些功能的Windows的最小GNU环境,则首先查看MinGW project。如果你很幸运,你可以在不使用编译库的情况下逃脱。

如果这还不够,那么您将移植一个程序,并且您正在移植到错误的系统上。 Windows是计算性的回水,提供完整的unistd.h是一项艰巨的任务,你可能更好地重写应用程序以删除对unistd.h的引用或使用Cygwin。