gets()

Get a string of characters from standard input

Synopsis:

#include <stdio.h>

char *gets( char *buf );

Arguments:

buf
A buffer where the function can store the string.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The gets() function gets a string of characters from the stdin stream, and stores them in the array pointed to by buf until end-of-file is encountered or a newline character is read. Any newline character is discarded, and the string is NUL-terminated.

You should use fgets() instead of gets(); gets() happily overflows the buf array if a newline character isn't read from stdin before the end of the array is reached.

The gets() function is similar to fgets() , except that gets() operates with stdin, has no size argument, and replaces a newline character with the NUL character.

Returns:

A pointer to buf, or NULL when end-of-file is encountered before reading any characters or a read error occurred ( errno is set).

Use feof() or ferror() to distinguish an end-of-file condition from an error.

Examples:

#include <stdio.h>
#include <stdlib.h>

int main( void )
{
    char buffer[80];

    while( gets( buffer ) != NULL ) {
        puts( buffer );
    }
    
    return EXIT_SUCCESS;
}

Classification:

ANSI, POSIX 1003.1

Safety:  
Cancellation point Yes
Interrupt handler No
Signal handler No
Thread Yes

Last modified: 2013-12-23

comments powered by Disqus