(所有在Linux上运行并通过命令行运行的程序)因此,我希望能够从自己的C程序中运行已编译的C程序,然后能够读取该已编译C程序的输出并获得我的C程序提供该程序的输入。 (还假设我只有其他C程序的编译版本)。我知道system()函数,但是不确定是否可以使用它来读取已编译程序的输出,然后提供自己的输入。
bush200 回答:如何在我的C程序中运行另一个C程序?
您需要在两个程序之间设置inter-process communication机制。有几种方法可以实现此目的:
- 共享内存/共享文件
- 消息队列
- 套接字
- 管道
关于问题的背景知识并不多,但是从您的描述看来,您的两个进程并行运行并且交换数据不止一次。在这种情况下,您还必须考虑同步问题。
here是有用的介绍。
,您可以像这样使用<span class="fab fa-flickr"></span>
<span class="fab fa-instagram"></span>
<span class="fab fa-500px"></span>
:
system()
system("executable arg1 ... > file.txt");
是可执行文件的参数列表。 arg1 ...
是重定向到文件的可执行文件的输出。可以在分支过程中进行此系统调用。父程序可以等待它。如果需要,同步工具可用于在文件file.txt
上启用并发。