Запуск программы, чтение и запись в неё - C (СИ)
Формулировка задачи:
Здравствуйте, такое дело. Мне нужно запустить определённую программу, а затем писать в её ввод и читать из вывода. Пытался сделать с помощью pipes (popen()), но ничего не получилось. Хотелось бы увидеть готовый пример. Заранее спасибо за помощь.
(Каюсь, поиском по форуму не пользовался)
Решение задачи: «Запуск программы, чтение и запись в неё»
textual
Листинг программы
#include <stdio.h>
int main(void) {
FILE * app;
if ( ! ( app = popen("./reverse_print", "w") ) ) {
fprintf(stderr, "Can't open pipe!\n");
return 1;
}
fprintf(app, "any many money more");
pclose(app);
return 0;
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки файловых операций
- Создание функции main()
- Объявление указателя на файл app
- Проверка на успешное открытие файла (или потока) для записи с помощью функции popen()
- Вывод сообщения об ошибке и возврат значения 1 при неудачном открытии файла
- Установка указателя app на открытый файл
- Вывод строки
any many money moreв файл с помощью функции fprintf() - Закрытие файла с помощью функции pclose()
- Возврат значения 0, означающего успешный исход работы программы