С fopen()
Я прочитал файл строки за строкой с помощью fgets()
.Эквивалентная функция fgets для открытия
Есть ли функция, например fgets()
, чтобы читать поток, открытый open()
?
С fopen()
Я прочитал файл строки за строкой с помощью fgets()
.Эквивалентная функция fgets для открытия
Есть ли функция, например fgets()
, чтобы читать поток, открытый open()
?
Нет такой функции. Проблема заключается в том, что, если вы не буферизируете в пользовательском пространстве (например, FILE*
подпрограмм), нет возможности эффективно ее реализовать: вам нужно будет read
символов один за другим.
В системах POSIX вы можете использовать fdopen
, чтобы обернуть структуру FILE*
вокруг файлового дескриптора, а затем использовать fgets
.
Вы пытаетесь прочитать стандартный ввод? Если это так ...
char line [1000]; FILE * fpin;
fpin = stdin; while (fgets (строка, 1000, fpin)! = NULL) printf ("% s", строка);
Прежде чем идти дальше, я предлагаю вам взглянуть на этот вопрос [об открытии и fopen] (http://stackoverflow.com/questions/1658476/c-fopen-vs-open) – JBL
Как насчет документации? http://linux.die.net/man/3/fgets – LihO