我是否可以仅在C ++中使用控制台中的其他程序调用程序

时间:2014-08-31 23:42:53

标签: c++

有人可以指导我如何从C ++中的其他程序调用程序。

理想情况下,这将是

的某个方面

Program01.exe (Program02.exe arg1 arg2) arg3 arg4

基本上我想给程序带来它自己的参数作为第二个程序的个别参数,它可能会读取main()的返回值并将其用作参数。

这可以仅使用控制台完成 - 没有Windows库 - 因为我最终希望将此项目移植到其他平台。

1 个答案:

答案 0 :(得分:2)

这可以使用C标准库功能系统()完成。 C标准库的这一部分也是C ++的一部分,应该可用于任何符合标准的实现。

http://en.cppreference.com/w/cpp/utility/program/system

从给予程序的参数中,您将准备一个字符串,该字符串是要运行的命令。该函数将返回的内容取决于实现,但它可能与您的描述一样 - 返回main()返回的值。

示例:http://coliru.stacked-crooked.com/a/ab5b6c3066a42851

对于POSIX兼容的操作系统,另一个选项是exec系列函数。

http://pubs.opengroup.org/onlinepubs/009695399/functions/exec.html

这些函数是特定于操作系统的,但与POSIX定义的其他函数一起,它们允许更精细的粒度控制,例如操作程序的stdin和stdout。