调用execl时未找到Grep

Grep not found when call execl

本文关键字:Grep execl 调用      更新时间:2023-10-16

我这里有一些C++代码。我想在linux中执行grep程序。编译时没有错误。

com.append("grep");
execl(com.c_str(), "-n", "-w", word.c_str(), list_files.at(i + 1).c_str(), NULL);

但是当我执行我的c++程序时,什么都没有。然后我想用errno查找错误。

结果是2,我知道这意味着他找不到这个程序。

但是我应该怎么做才能从我的c++程序启动grep呢?

execl()不在$PATH中搜索可执行文件。为其提供grep命令的完整路径,或者使用搜索$PATHexeclp()

man execl了解更多信息。

也许找不到二进制文件。

  • 在附加之前检查com包含的内容(它应该包含正确的路径,如/usr/bin/,带有尾随路径分隔符…(

  • 尝试使用"/usr/bin/grep"代替