使用mingw和system()函数调用用户的Windows编程

时间:2011-08-05 08:22:59

标签: windows mingw

我来自Unix编程背景,在将系统从Unix移植到Windows时遇到了一个独特的行为/问题 [我对Windows上的开发很新,所以下面的问题可能看起来太明显了。]

我使用mingw进行移植,问题是关于Unix中提供的“system()”调用和WEXITSTATUS选项。


问题

  1. 在Unix中,要执行任何命令/脚本,我们都有使用system()调用的代码。同样在mingw中编译 - 但我想知道Unix和Windows版本的system()调用之间的行为是否有任何变化。
    system()调用的windows版本在mingw的stdlib中提供,但是无法获得确切的行为。

  2. 我的第二个问题是关于WEXITSTATUS。通常,在Unix中,它与system()命令一起使用以获取所执行命令的状态 一个。使用mingw的stdlib的system()可以做同样的事情吗? 湾如何实现呢?


  3. 注意:

    我已经阅读了关于createProcess及其在网络中的后续用法 - 但我的想法是继续使用现有代码(使用system()调用本身)并找到WEIXTSTATUS的替代方案。


    提前感谢您的帮助/建议。

1 个答案:

答案 0 :(得分:3)

在此处查看system上的Win32文档:http://msdn.microsoft.com/en-us/library/277bwbdz%28v=VS.100%29.aspx

请注意,system调用受制于系统上的命令解释程序,而cmd.exe(Windows命令解释程序)的工作方式与Unix Bash不同。