команда — запуск нескольких функций execve в одном файле c ++

Я должен написать c++ Программа, которая «считает количество строк, слов и количество байтов из текстового файла», все из которых должны быть в новой строке.

Я должен использовать команду wc в моей программе на C ++. Мне удалось получить количество строк:

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

После приведенных выше утверждений у меня есть одно, которое заменяет «-l» на «-w» и так далее. Но моя программа заканчивается сразу после первого execve() заявление.

Как я могу заставить все мои заявления выполняться даже после execve() заявление?

Н.Б .: Это будет мой первый запуск системных команд с использованием программы на С ++.

Заранее спасибо.

0

Решение

execve заменяет текущий исполняемый образ указанным и, следовательно, никогда не возвращается при успехе. Если вы хотите продолжить выполнение основной программы, вам нужно fork первый. Или использовать что-то так же скучно, как system функция.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]