В Linux я могу читать доступные данные, не блокируя процесс:
fcntl(STDIN_FILENO, F_SETFL, fcntl(STDIN_FILENO, F_GETFL, 0) | O_NONBLOCK )
char buf[n];
int r = fread(buf, 1, n, stdin);
if (r == 0){
printf("nothing\n");
}
else {
printf("read: ");
fwrite(buf, 1, r, stdout);
printf("\n");
}
Источник ввода может быть любым, например, файлом, терминалом или каналом.
Как я могу это сделать в Windows XP?
Спасибо.