我已经阅读了很多关于我要问的内容,但我发现最接近的是使用 ncurses 库。我正在做的是一个简单的 http 客户端,它将监视一些远程文件夹以检查其文件是否已更改或是否有新文件。此外,它必须检查一些命令的标准输入,所以,我打算使用父进程来监控标准输入和工作进程来监控远程目录。我想使用键盘中断之类的东西。就像安装一个信号处理程序来按下键盘一样,所以用户不必在每个命令后按 enter。
到目前为止,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
$
谢谢你的帮助!!!=)