Сохранить данные из стандартного потока выхода в буфер - C (СИ)
Формулировка задачи:
Доброе время суток!
Возникла необходимость перенаправить данные из stdout в строку, после выполнения системной команды.
Для точности вопроса привожу код:
После выполнения данной программы в буфер должна быть помещена строка из stdout.
К примеру, если мы ввели данные "echo test", то buffer должен содержать "test".
Заранее благодарю.
P.S. в дальнейшем мне будет необходимо работать с массивом строк(к примеру для команды "dir")
#include <stdio.h>
#include <stdlib.h>
int main(){
char com[80];
char buffer[80];
fgets(com,80,stdin);
system(com);
/* ... magic ... */
return 0;
}Решение задачи: «Сохранить данные из стандартного потока выхода в буфер»
textual
Листинг программы
system("echo test>>test.txt");
Объяснение кода листинга программы
- Команда
echoиспользуется для вывода текста в стандартный поток вывода. test- это текст, который будет выведен в файл.>>- это оператор перенаправления, который позволяет записывать вывод команды в файл, не перезаписывая его.test.txt- это имя файла, в который будет записан текст.