Windows <sys file.h =“”>等效的</sys>

时间:2010-03-29 12:53:02

标签: linux winapi port header-files

是否存在与Linux头文件等效的Win32?我正在使用Linux到Windows端口(我第一次这样做)并且它在这个文件上失败了。

3 个答案:

答案 0 :(得分:4)

编写WIN32API应用程序时,通常#include <windows.h> - 包括应用程序中的大多数Windows API。如果你需要减少其中的一些内容,#define WIN32_LEAN_AND_MEAN将从Windows库中消除一些比较模糊的东西。

您尝试转换哪些功能?它可能是在WIN32上使用不同功能的情况;它与Linux / Unix / POSIX非常不同。

示例:就一般概念而言,ReadFile()函数大致相当于read(),但调用签名非常不同。 ReadFile()的MSDN条目说:

  

标题:WinBase.h(包括Windows.h)

答案 1 :(得分:1)

如果您移植到Windows,那么坚持跨平台标准要比直接跳入本机Windows Api端口(ala CreateFile)要容易得多。

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

有一些构建环境可用于将linux / unix应用程序移植到Windows。

  • 如果您的应用程序坚持使用C标准库来处理文件IO,那么Dev Studio应该支持大部分内容。 <stdio.h>例如fopen
  • MinGW提供了一组工具,但是使用了microsoft c-runtime,因此pthreads之类的东西应该丢失。
  • Cygwin是一个更符合要求的POSIX构建环境。
  • SUA是微软自己提供的产品。

答案 2 :(得分:0)

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