Fgets

Fgets

fgets is a function in C programming language that reads a string of characters with a specific length from a given file stream source. As far as traceable, fgets stands for "file get string". It is included in the C standard library header file stdio.h.

The fgets function terminates reading after a new-line character is found. The length argument includes space needed for the null character which will be appended to the end of the string. As a result, to read "N" characters, the length specification must be specified as "N+1". The string read is returned. The prototype of the function is as follows::char* fgets(char *string, int length, FILE * stream)

The stream argument specifies from which stream will the string be read from. stdin is commonly used here, for reading from the standard input. Otherwise, a FILE * value returned by the fopen function is used.

ample usage

The following code reads characters from the console input and prints them out 20 in a line with the puts function until an EOF occurs.


#include

#define MAX_LEN 20

int main(void){ char str_buf [MAX_LEN + 1] ; /* One extra byte needed * for the null character */

while(fgets(str_buf, MAX_LEN + 1, stdin) != NULL) puts(str_buf);

return 0;}

Use in POSIX utilities

For compliance with POSIX utility line lengths, the definition LINE_MAX (generally found in limits.h) is often used to size the character buffer.

Limitations

The fixed buffer size imposed by fgets() is cumbersome in applications which need to handle arbitrarily long lines of text.

GNU libc provides a function called getline(), which will read an entire line, reallocating the buffer if it is not long enough. [http://www.gnu.org/software/libc/manual/html_node/Line-Input.html#index-getline-993]

Advanced applications can avoid buffer limitations by using mmap.

ee also

*scanf
*gets


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Gets — gets  функция, входящая в Стандартную библиотеку языка Си, объявляемая в заголовочном файле stdio.h, которая считывает строку стандартного ввода и помещает ее в буфер, созданный вызывающей функцией. Содержание 1 Реализация 2 Альтернативы …   Википедия

  • gets — gets  функция, входящая в Стандартную библиотеку языка Си, объявляемая в заголовочном файле stdio.h, которая считывает строку стандартного ввода и помещает ее в буфер, созданный вызывающей функцией. Содержание 1 Реализация 2 Альтернативы …   Википедия

  • Comparison of programming languages (basic instructions) — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Buffer-Overflow — Pufferüberläufe (engl. buffer overflow) gehören zu den häufigsten Sicherheitslücken in aktueller Software, die sich u. a. über das Internet ausnutzen lassen können. Im Wesentlichen werden bei einem Pufferüberlauf durch Fehler im Programm zu große …   Deutsch Wikipedia

  • Buffer Overflow — Pufferüberläufe (engl. buffer overflow) gehören zu den häufigsten Sicherheitslücken in aktueller Software, die sich u. a. über das Internet ausnutzen lassen können. Im Wesentlichen werden bei einem Pufferüberlauf durch Fehler im Programm zu große …   Deutsch Wikipedia

  • Buffer overflow — Pufferüberläufe (engl. buffer overflow) gehören zu den häufigsten Sicherheitslücken in aktueller Software, die sich u. a. über das Internet ausnutzen lassen können. Im Wesentlichen werden bei einem Pufferüberlauf durch Fehler im Programm zu große …   Deutsch Wikipedia

  • Heap-Overflow — Pufferüberläufe (engl. buffer overflow) gehören zu den häufigsten Sicherheitslücken in aktueller Software, die sich u. a. über das Internet ausnutzen lassen können. Im Wesentlichen werden bei einem Pufferüberlauf durch Fehler im Programm zu große …   Deutsch Wikipedia

  • Heap Overflow — Pufferüberläufe (engl. buffer overflow) gehören zu den häufigsten Sicherheitslücken in aktueller Software, die sich u. a. über das Internet ausnutzen lassen können. Im Wesentlichen werden bei einem Pufferüberlauf durch Fehler im Programm zu große …   Deutsch Wikipedia

  • Pointer overflow — Pufferüberläufe (engl. buffer overflow) gehören zu den häufigsten Sicherheitslücken in aktueller Software, die sich u. a. über das Internet ausnutzen lassen können. Im Wesentlichen werden bei einem Pufferüberlauf durch Fehler im Programm zu große …   Deutsch Wikipedia

  • Pufferüberlauf — Pufferüberläufe (engl. buffer overflow) gehören zu den häufigsten Sicherheitslücken in aktueller Software, die sich u. a. über das Internet ausnutzen lassen können. Im Wesentlichen werden bei einem Pufferüberlauf durch Fehler im Programm zu… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”