2013-02-15 5 views
0

С fopen() Я прочитал файл строки за строкой с помощью fgets().Эквивалентная функция fgets для открытия

Есть ли функция, например fgets(), чтобы читать поток, открытый open()?

+0

Прежде чем идти дальше, я предлагаю вам взглянуть на этот вопрос [об открытии и fopen] (http://stackoverflow.com/questions/1658476/c-fopen-vs-open) – JBL

+0

Как насчет документации? http://linux.die.net/man/3/fgets – LihO

ответ

2

Нет такой функции. Проблема заключается в том, что, если вы не буферизируете в пользовательском пространстве (например, FILE* подпрограмм), нет возможности эффективно ее реализовать: вам нужно будет read символов один за другим.

В системах POSIX вы можете использовать fdopen, чтобы обернуть структуру FILE* вокруг файлового дескриптора, а затем использовать fgets.

0

Вы пытаетесь прочитать стандартный ввод? Если это так ...

char line [1000]; FILE * fpin;

fpin = stdin; while (fgets (строка, 1000, fpin)! = NULL) printf ("% s", строка);