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

标签 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++ 程序运行系统命令。

提前谢谢你。

最佳答案

execve 将当前的可执行镜像替换为指定的镜像,因此在成功时永远不会返回。如果你想继续执行主程序,那么你需要先fork。或者使用像 system 函数这样乏味的东西。

关于c++ - 在一个 C++ 文件中运行多个 execve 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51800874/

相关文章:

c++ - 模板中的函数指针

ubuntu - WebStorm 未在 Ubuntu 中打开

types - Lisp 类型的系统故障

php - 登录和 session PHP

c++ - 未定义对 <namespace>::<variable> 的引用

C++内存分配机制性能对比(tcmalloc vs. jemalloc)

Linux 合并文件

java - Java中unix命令之间的通信

Linux上的C编程: which distro and tools to use

c++ - 预期 `__asm` 语句中的表达式