我正在尝试执行下一个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);
}
答案 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} }。