Я должен написать c++
Программа, которая «считает количество строк, слов и количество байтов из текстового файла», все из которых должны быть в новой строке.
Я должен использовать команду wc в моей программе на C ++. Мне удалось получить количество строк:
char *envp[] = {NULL};
char *command[] = {"wc", "-l", filename.c_str(), NULL};
execve("/usr/bin/wc", command, envp);
После приведенных выше утверждений у меня есть одно, которое заменяет «-l» на «-w» и так далее. Но моя программа заканчивается сразу после первого execve()
заявление.
Как я могу заставить все мои заявления выполняться даже после execve()
заявление?
Н.Б .: Это будет мой первый запуск системных команд с использованием программы на С ++.
Заранее спасибо.
execve
заменяет текущий исполняемый образ указанным и, следовательно, никогда не возвращается при успехе. Если вы хотите продолжить выполнение основной программы, вам нужно fork
первый. Или использовать что-то так же скучно, как system
функция.
Других решений пока нет …