Windows <sys / file.h>等效

是否有一个相当于Linux头文件的Win32? 我正在开发一个Linux到Windows的端口(我第一次这样做),而且在这个文件上失败了。

在编写WIN32API应用程序时,通常会包含#include <windows.h> – 其中包括应用程序中的大部分Windows API。 如果你需要减少其中的一些内容,# #define WIN32_LEAN_AND_MEAN会从Windows库中清除一些比较晦涩的东西。

你想转换什么功能? 这可能是在WIN32上使用不同的函数的情况; 与Linux / Unix / POSIX完全不同。

例如: ReadFile()函数大致等价于read() ,但是调用的签名是非常不同的。 ReadFile()的MSDN条目说:

头文件:WinBase.h(包括Windows.h)

如果你正在移植到windows,那么坚持跨平台标准要比直接进入本地windows Api API(ala CreateFile)要容易得多。

我不知道是什么功能,它看起来像它的POSIX标准头文件的一部分,但我找不到在posix源的引用。

有几个构建环境可以用来将linux / unix应用程序移植到Windows。

  • 如果您的应用程序坚持C标准库的文件IO的东西,开发工作室应支持本质上的大部分。 例如, <stdio.h>就像fopen一样。
  • MinGW提供了一套工具,但使用微软的c-runtime,所以像pthreads的东西应该丢失。
  • Cygwin是一个更符合标准的POSIX构建环境。
  • SUA是微软自己的产品。

为了后人的利益, <sys/file.h>是底层文件I / O例程的BSD版本。 根据您的编译器安装和构建环境,您可能需要<fcntl.h> 。 大多数通常的I / O例程都在<stdio.h> ,甚至是相当低级别的控制setvbuf() 。 如果你想在Linux(或其他* NICES)下通常不存在的I / O例程/设置,你需要<windows.h><conio.h>