popen
хранит о/р указанной команды в файле. Как получить аналогичную функциональность, но o/p в переменную (т. Е. В char *)?Выполнение команды и получение o/p переменной
ответ
Я не мог найти ничего, что возвращает o/p в переменной. Это имеет смысл, так как некоторые команды «o/p» могут быть большими, поэтому для обеспечения согласованности поведения o/p сохраняется в файле. Я на самом деле закончил чтение из файла, возвращенного popen
.
Спасибо за помощь.
вы можете заменить STDOUT и STDERR для запущенной команды с потоком, который вы контролируете
Нет, popen()
не сохраняет вывод в файл. Он указывает поток , который может представлять файл на диске, но который также может быть, например, на диске. трубы или гнезда. Потоки более абстрактны, чем файлы.
Чтобы иметь трубу, вы можете открыть трубу, используя, например, pipe()
, а затем наберите fdopen()
на соответствующем конце полученной трубы.
Спасибо. То, что я хочу сделать, - это выполнить очень простую вещь, то есть «wc -l имя_файла» и сохранить o/p в переменной/буфере. Возможное? – hari
Вы хотите запустить команду unix из программы на C и сохранить выход?
Если это так, то последовательность должна вызвать FILE* pipe = popen("wc -l filename", "r");
, а затем читать из ФАЙЛА * pipe
так же, как вы читали бы из файла, открытого с помощью fopen
. То есть вы используете такие функции, как fgets
или fscanf
, чтобы читать результат так же, как если бы результат команды находился в файле.
- 1. Выполнение команды из переменной
- 2. Выполнение команды, получение вывода и использование его
- 3. Выполнение команды на основе переменной
- 4. Выполнение команды linux из переменной
- 5. Выполнение команды, хранящейся в переменной
- 6. Выполнение команды и сейчас()
- 7. Выполнение команды, хранящейся в переменной из Powershell
- 8. Выполнение команды непосредственно против из переменной среды
- 9. Разница между Pseudo-op и Machine-op?
- 10. Выполнение команды и сохранение вывода в переменной массива
- 11. Выполнение команды, которая хранится в переменной (включая каналы и перенаправления)
- 12. Lua: Выполнение строки и сохранение вывода команды в переменной
- 13. Выполнение команды CLI и сохранение в переменной с помощью telnetlib
- 14. PHP Выполнение команды оболочки асинхронно и получение живого выхода
- 15. Выполнение команды ssh и execute
- 16. Выполнение команды
- 17. Выполнение команды из другой команды
- 18. Выполнение хранимых запросов в таблице и получение значений в переменной
- 19. Выполнение команд cmd и получение результатов для строковой переменной
- 20. Выполнение команды прерывания JSch
- 21. Выполнение команды оболочки psql с \!
- 22. Выполнение команды в скрипте Kornshell
- 23. Выполнение сложной команды в Makefile
- 24. Выполнение команды как другого пользователя и получение PID для этого процесса
- 25. Что выделяет/op и B/op означает в go bench?
- 26. Python переменной сферы и выполнение
- 27. Возможно ли сохранить выполнение отложенной команды в переменной bash?
- 28. Передача Bash команды через SSH - Выполнение захвата переменной
- 29. Выполнение команды linux с переменной с использованием python
- 30. Выполнение переменной строки как команды в пакетном сценарии
Посмотрите этот вопрос (довольно много, ваш дубликат): http://stackoverflow.com/questions/219138/get-command-output-in-pipe-c-for-linux –
@Aleks: Sorry , это не то, о чем я прошу здесь. – hari