Grep не найден при вызове execl - PullRequest
1 голос
/ 14 сентября 2011

У меня есть код на C ++.Я хочу выполнить программу grep в linux.При компиляции ошибок нет.

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

Но когда я запускаю свою программу на c ++, ничего не было.Затем я хотел найти ошибку с ошибкой.

Результатом было 2, и я знаю, что это означает, что он не мог найти эту программу.

Но что мне делать, чтобы я мог начатьgrep из моей c ++ - программы?

Ответы [ 2 ]

6 голосов
/ 14 сентября 2011

execl() не ищет $PATH исполняемого файла. Либо укажите полный путь к команде grep, либо используйте execlp(), который выполняет поиск $PATH.

man execl для получения дополнительной информации.

0 голосов
/ 14 сентября 2011

Возможно, двоичный файл не найден.

  • проверьте, что com содержит перед добавлением (он должен содержать правильный путь, например /usr/bin/, с конечным разделителем пути ...)

  • попробуйте вместо "/ usr / bin / grep"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...