URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 153
[ Назад ]

Исходное сообщение
"Я знаю, что это RTFM... Но как определить конец входного потока?"

Отправлено boykov , 14-Сен-01 22:01 
Собственно глупый вопрос. Когда рисуешь фильтр на С -- читать можно как угодно. Но как определить, что на входе все кончилось?

То есть кончился ли файл, или юзверь ^Z нажал.

В С++ -- у потока есть .eof() . А в С у  stdin есть нечто подобное?


Содержание

Сообщения в этом обсуждении
"RE: Я знаю, что это RTFM... Но как определить конец входного потока?"
Отправлено Арлекин , 15-Сен-01 12:45 
Проверяй на наличие в прочитанном EOF. Константа определяется где-то в sys/types.h или в unistd.h

Это может не сработать, если читаешь поток, являющийся частью диалога - тот кто пишет тебе совершенно не обязательно, перед началом ожидания от тебя, пошлет тебе EOF ( telnet например ). Ну и потом - могут ^C нажать или ^D, по-хорошему надо еще и сигналы ловить.


"RE: Я знаю, что это RTFM... Но как определить конец входного потока?"
Отправлено XMan , 15-Сен-01 18:55 
По идее, stdin описан как "FILE *". Тогда можно пользовать "feof(stdin)".