我有一个C程序,它从命令行读取输入,我想向可执行文件提供ls | wc -m
命令的输出,因为我需要使用相同的输入调用可执行文件的两个实例(./a.out1
、./a.out2
(,并使它们并行运行(管道?(。
提前感谢您的帮助!
您说要使用管道,因此首先需要调整程序以读取来自stdin
而不是argc
和argv
的输入。通过管道传递的输入被而不是添加到命令行参数列表中。
要将进程的stdout
管道传输到多个其他进程,可以使用tee
和进程替换:
ls | wc -m | tee >(./a.out1) >(./a.out2) >/dev/null
然而,我不清楚为什么要求将其管道化(而不是作为参数传递(,因此将输出存储在注释中建议的变量中对您所展示的示例同样有效。