Name
gets
Synopsis
Reads a line of text from standard input
#include <stdio.h> char *gets( char *buffer);
The gets() function reads
characters from the standard input stream until it reads a newline
character or reaches the end of the stream. The characters read are
stored as a string in the buffer addressed by the pointer argument.
A string terminator character '\0' is appended after the last character
read (not counting the newline character, which is
discarded).
If successful, the function returns the value of its argument.
If an error occurs, or if the end of the file is reached before any
characters can be read in, gets()
returns a null pointer.
Warning
The gets() function
provides no way to limit the input length, and if the stdin stream happens to deliver a long
input line, gets() will attempt
to store characters past the end of the of the available buffer.
Such buffer overflows are a potential security risk. Use fgets() instead, which has a parameter
to control the maximum input length.
Example
char buffer[1024]; /* 7/11/04: Replaced gets() with fgets() to avoid potential buffer overflow * OLD: while (gets( buffer ) != NULL ) * NEW: below */ while (fgets( buffer, sizeof(buffer), stdin ) != NULL ) { /* ... process the line; remember that fgets(), unlike gets(), retains the newline character at the end of the string ... */ }
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access