【发布时间】:2011-06-21 14:10:54
【问题描述】:
在 Windows 上使用 Cygwin,我希望在服务器日志中获得特定消息的声音通知。我写了以下内容:
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *f = fopen("/dev/stdin", "r");
char bar=' ';
if(f==NULL) {
return 1;
}
do {
bar = fgetc(f);
if((bar=='\n') || (bar=='\r')) {
printf("\a");
}
if(bar!=EOF) {
printf("%c", bar);
}
} while(bar!=EOF);
fclose(f);
printf("Done.\n");
return 0;
}
然后我运行了以下命令:
tail -f serverlog | grep myMessage | ./alerty.exe
有时我会收到通知,有时却没有。
我的问题有两个: 1) 在我的 C 程序中,有什么问题?为什么我不能始终如一地读取管道输入?这激起了我的好奇心,所以我很想知道。
2) 我如何实现使系统在特定文本出现在文件中时发出蜂鸣声的最初目标?
【问题讨论】: