Я много читал о том, что я спрашиваю, но самое близкое, что я нашел, это использование библиотеки ncurses. Что я делаю, так это простой http-клиент, который будет контролировать некоторые удаленные папки, чтобы проверить, изменились ли его файлы или есть новые файлы. Кроме того, он должен проверить стандартный ввод для некоторых команд, поэтому я планирую использовать родительский процесс для мониторинга стандартного ввода и рабочий процесс для мониторинга удаленных каталогов. Я хотел бы использовать что-то вроде прерывания клавиатуры. Что-то вроде установки обработчика сигнала на нажатие клавиатуры, поэтому пользователю не нужно нажимать клавишу ввода после каждой команды.
Пока что ncurses делает то, что мне нужно, но я не могу напечатать материал на stdout, а вместо этого на stdscr. Проблема в том, что этот проект является заданием для колледжа, и очень вероятно, что он будет проверен через скрипт, который читает стандартный вывод программы mi ...
так, есть предложения?
соответствующий код:
#include <ncurses.h>
initscr(); /* Start curses mode */
raw(); /* Line buffering disabled */
noecho(); /* Don't echo() while we do getch */
char key;
while (TRUE) {
key = getch();
switch(key)
{
case 's':
printw("Instrucción recibida: STOP\n");
printf("Hasta Luego!\n");
fflush(stdout);
/*NOTICE THIS HAS NO EFFECT, */
refresh();
sleep(2);
endwin(); /* End curses mode */
fflush(stdout);
exit(0);
break;
case 'c':
printw("Instrucción recibida: CONTINUE\n");
refresh();
break;
case 'p':
printw("Instrucción recibida: PAUSE\n");
refresh();
break;
default:
printw("Instrucción desconocida recibida: %c\n",key);
refresh();
}
}
endwin(); /* End curses mode */
когда я запускаю свою программу, если я перенаправляю вывод в файл, я получаю пустой файл
$ verific -d http://url.toMy.directory/ > output
$ cat output
$
Спасибо за вашу помощь !!! =)