Используя Cygwin в Windows, я хотел получить звуковое уведомление о конкретных сообщениях в журнале сервера.Я написал следующее:
#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) Как мне достичь первоначальной цели - заставить мою систему подавать звуковой сигнал, когда конкретный текст появляется в файле?