我来自Unix编程背景,在将系统从Unix移植到Windows时遇到了一个独特的行为/问题 [我对Windows上的开发很新,所以下面的问题可能看起来太明显了。]
我使用mingw进行移植,问题是关于Unix中提供的“system()”调用和WEXITSTATUS选项。
问题
在Unix中,要执行任何命令/脚本,我们都有使用system()调用的代码。同样在mingw中编译 - 但我想知道Unix和Windows版本的system()调用之间的行为是否有任何变化。
system()调用的windows版本在mingw的stdlib中提供,但是无法获得确切的行为。
我的第二个问题是关于WEXITSTATUS。通常,在Unix中,它与system()命令一起使用以获取所执行命令的状态 一个。使用mingw的stdlib的system()可以做同样的事情吗? 湾如何实现呢?
注意:
我已经阅读了关于createProcess及其在网络中的后续用法 - 但我的想法是继续使用现有代码(使用system()调用本身)并找到WEIXTSTATUS的替代方案。
提前感谢您的帮助/建议。
答案 0 :(得分:3)
在此处查看system
上的Win32文档:http://msdn.microsoft.com/en-us/library/277bwbdz%28v=VS.100%29.aspx
请注意,system
调用受制于系统上的命令解释程序,而cmd.exe(Windows命令解释程序)的工作方式与Unix Bash不同。