从MSVC C 执行控制台应用程序

visual Executing a console application from msvc c++

本文关键字:控制台 应用程序 执行 MSVC      更新时间:2023-10-16

从.NET应用程序(C#)捕获控制台输出

我想做一个类似的事情,除了我使用的是C 而不是C#外,我想做的类似的事情。我有一个经过良好测试的Java应用程序,该应用程序具有一些即将在我的C 代码中重写的功能,并且我想使用Boost单元为此编写一些单元测试,以测试结果相同。本质上,我想从C 调用此Java命令行应用程序。如果可能的话,我宁愿不使用JNI,因此首选通过C 代码执行其他命令行应用程序。

如何从C 应用程序调用控制台应用程序并捕获控制台中生成的所有输出?(我宁愿不必写入中间文件,但是如果那是唯一的方法,那就这样)

看来这应该很简单,但是通过搜索网络,我遇到了很多麻烦,因为关键字倾向于找到有关其他事物的结果(c#和命令行的编译为2个示例)。如果这个问题是重复的,我一点也不会感到惊讶,但是我找不到另一个相同的问题。如果确实存在,我很乐意在找到另一个问题的链接上关闭这个问题。

它取决于您要定位的操作系统,因为标准C 库中没有进程处理功能。例如,在Windows上,您将创建两个管道(使用CreatePipe函数)来重定向Java应用程序的输入和输出,然后使用CreateProcess函数运行Java应用程序。这里有一个例子。

,但我真的建议您改用JNI,这比管道比管道更好。最终您会意识到,如果您走管道路线。