今天我偶然发现了 MSDN 关于 Visual C++ 的 C 运行时的文档(示例:http://msdn.microsoft.com/en-us/library/8syseb29.aspx),令我惊讶的是发现很多函数看起来就像 POSIX 系统调用:dup2
、fdopen
, stat
, execlp
, ..., 除了以 _
或 _w
为前缀。这些函数只是 Windows API 的包装器吗?它们只能用于 POSIX 子系统吗?它们是否已被弃用/将被弃用?
最佳答案
这些函数是 Win32 API 的包装器。您无需拥有 POSIX 子系统即可使用它们。它们不太可能消失 - Microsoft 非常重视向后兼容性。
您可以在“\Program Files (x86)\Microsoft Visual Studio X.0\VC\crt\src”中找到MS CRT的源代码。例如。您可以看到 _dup2
正在调用 DuplicateHandle
而 _stat
正在使用 FindFirstFileEx
。
至于为什么他们有下划线,我找不到官方原因,但我怀疑这可能是因为这些函数不提供完全的 POSIX 合规性。
关于c - MSVC 的 C 运行时中有哪些类似 POSIX 的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23477746/