私が求めていることについて多くのことを読みましたが、私が見つけた最も近いものは ncurses ライブラリを使用することです。私がしているのは、ファイルが変更されたかどうか、または新しいファイルがあるかどうかを確認するためにいくつかのリモートフォルダーを監視する単純な http クライアントです。また、いくつかのコマンドについて標準入力をチェックする必要があるため、親プロセスを使用して標準入力を監視し、ワーカー プロセスを使用してリモート ディレクトリを監視することを計画しています。キーボード割り込みのようなものを使用したいと思います。キーボードを押すためのシグナルハンドラーをインストールするようなもので、ユーザーは各コマンドの後にEnterキーを押す必要がありません。
これまでのところ、ncurses は必要なことを行っていますが、stdout ではなく stdscr で印刷できません。問題は、このプロジェクトが大学の課題であり、mi プログラムの stdout を読み取るスクリプトを通じてチェックされる可能性が非常に高いことです...
それで、何か提案はありますか?
関連するコードは次のとおりです。
#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
$
ご協力いただきありがとうございます!!!=)