c-将一个linux命令行传递到两个可执行文件中



我有一个C程序,它从命令行读取输入,我想向可执行文件提供ls | wc -m命令的输出,因为我需要使用相同的输入调用可执行文件的两个实例(./a.out1./a.out2(,并使它们并行运行(管道?(。

提前感谢您的帮助!

您说要使用管道,因此首先需要调整程序以读取来自stdin而不是argcargv的输入。通过管道传递的输入被而不是添加到命令行参数列表中。

要将进程的stdout管道传输到多个其他进程,可以使用tee和进程替换:

ls | wc -m | tee >(./a.out1) >(./a.out2) >/dev/null

然而,我不清楚为什么要求将其管道化(而不是作为参数传递(,因此将输出存储在注释中建议的变量中对您所展示的示例同样有效。

最新更新