在一个C ++文件中运行多个execve函数

时间:2018-08-11 14:53:54

标签: c++ command system wc execve

我必须编写一个c++程序,该程序“计算文本文件中的行数,单词数和字节数”,所有这些都必须放在新行中。

我必须在c ++程序中使用wc命令。我设法得到了行数:

char *envp[] = {NULL};
char *command[] = {"wc", "-l", filename.c_str(), NULL};
execve("/usr/bin/wc", command, envp);

在上述语句之后,我有一个将“ -l”替换为“ -w”等。但是我的程序在第一个execve()语句之后立即结束。

即使在execve()语句之后,如何使所有语句执行?

注意:这是我第一次使用c ++程序运行系统命令。

谢谢。

1 个答案:

答案 0 :(得分:2)

execve将当前的可执行映像替换为指定的可执行映像,因此从不会成功返回。如果要继续执行主程序,则需要首先fork。或使用像system函数那样乏味的东西。