【问题标题】:Visual c++ doesn't have sys/wait.hVisual c++ 没有 sys/wait.h
【发布时间】:2011-10-20 19:30:51
【问题描述】:

我已经下载了时区数据库库,并试图在 windows 下将其编译为 DLL。当我这样做时,我会收到如下消息:

1>c:\javatools\tzinfo\src\private.h(97): 致命错误 C1083: 无法打开包含文件: 'sys/wait.h': 没有这样的文件或目录

当然,sys/wait.h 不是 ANSI C,这是问题所在。我似乎记得 Windows 有一些与此相近的文件名。我可以在这里获得帮助吗?

谢谢。

【问题讨论】:

  • 你要调用什么函数?
  • 什么库?你如何编译它?它是否完全支持 MSVC?如果它很可能你没有很好地构建它。无论如何sys/wait.h 是 POSIX 标头...不要指望它会出现在 Windows 上。
  • 不知道。包含在包含中,但我的代码中没有。我四处张望,什么也没看到。
  • 取出包含,看看会发生什么!
  • 也许删除这些标头的包含,看看代码试图调用什么?

标签: c visual-studio-2010


【解决方案1】:

fork()wait()waitpid() 由 POSIX 标准定义,Windows 不兼容 POSIX。

为了在 Windows 下符合 POSIX,您应该在 Cygwin 下编译。

类似的WinAPI函数有CreateProcessGetProcessExitCode

【讨论】:

  • GetProcessExitCode 是非阻塞的,和 wait() 完全不一样。
【解决方案2】:

如果您正在寻找与 MSVS 等效的 wait(),请查看 WaitForSingleObject()

【讨论】:

  • wait(NULL) 的 Windows 等效项是什么?
猜你喜欢
  • 2013-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-30
  • 2017-12-28
  • 1970-01-01
  • 1970-01-01
  • 2022-06-27
相关资源
最近更新 更多