用C中的管道编程linux命令

时间:2016-12-22 12:22:33

标签: c linux shell command pipe

我正在尝试执行下一个linux命令

 cat file_a file_b file_c | wc –l > result.txt

在C程序中,但我无法正常完成。我的C编程水平很低,我想看看如何使该命令在C程序中运行。

这是我开发的代码没有成功:

void main() {

execlp("/bin/sh", "/bin/sh", "-c", "cat file1 file2 fileN | wc –l > lines.txt", 0);

}

1 个答案:

答案 0 :(得分:1)

我按照你的例子。 结果如下:

函数'execlp'的隐式声明在C99中无效

以及其他一些警告错误。

但我认为如果你使用system() C函数会更好,这就是我所做的:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   system("cat filea fileb filec | wc -l > result.txt");

   return EXIT_SUCCESS;
}

编译后有效!

如果你想只运行一个命令而不需要读取结果输出,你可以使用C函数system(),但如果你想运行它来获得结果,你应该使用{{1} }。