MSVC的C运行时中的POSIX函数是什么?

Siy*_*Ren 7 c winapi visual-studio visual-c++

今天我偶然发现了MSDN关于Visual C++的C运行时的文档(例如:http://msdn.microsoft.com/en-us/library/8syseb29.aspx),让我惊讶的是很多看起来像POSIX系统调用的函数:dup2,fdopen,stat,execlp,...,除了与被前缀__w.这些函数只是Windows API的包装器吗?它们只适用于POSIX子系统吗?他们被弃用/将被弃用吗?

Igo*_*sky 6

这些函数是Win32 API的包装器.您不需要让POSIX子系统使用它们.它们不太可能消失 - 微软非常重视兼容性.

您可以在"\ Program Files(x86)\ Microsoft Visual Studio X.0\VC\crt\src"中找到MS CRT的源代码.例如,你可以看到它_dup2正在调用DuplicateHandle_stat正在使用FindFirstFileEx.

至于为什么他们得到了下划线,我找不到官方的理由,但我怀疑这可能是因为这些功能不能提供完整的POSIX合规性.