今天,我偶然发现了有关Visual C++的C运行时的MSDN文档(示例:http://msdn.microsoft.com/en-us/library/8syseb29.aspx),令我惊讶的是,很多功能看起来像POSIX syscall: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/