diff options
Diffstat (limited to 'man3/gets.3')
-rw-r--r-- | man3/gets.3 | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/man3/gets.3 b/man3/gets.3 new file mode 100644 index 000000000..4f9671fd9 --- /dev/null +++ b/man3/gets.3 @@ -0,0 +1,164 @@ +.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) +.\" +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" License. +.\" Modified Wed Jul 28 11:12:07 1993 by Rik Faith (faith@cs.unc.edu) +.\" Modified Fri Sep 8 15:48:13 1995 by Andries Brouwer (aeb@cwi.nl) +.TH GETS 3 1993-04-04 "GNU" "Linux Programmer's Manual" +.SH NAME +fgetc, fgets, getc, getchar, gets, ungetc \- input of characters and strings +.SH SYNOPSIS +.nf +.B #include <stdio.h> +.sp +.BI "int fgetc(FILE *" stream ); +.nl +.BI "char *fgets(char *" "s" ", int " "size" ", FILE *" "stream" ); +.nl +.BI "int getc(FILE *" stream ); +.nl +.BI "int getchar(void);" +.nl +.BI "char *gets(char *" "s" ); +.nl +.BI "int ungetc(int " c ", FILE *" stream ); +.SH DESCRIPTION +.B fgetc() +reads the next character from +.I stream +and returns it as an +.B unsigned char +cast to an +.BR int , +or +.B EOF +on end of file or error. +.PP +.B getc() +is equivalent to +.B fgetc() +except that it may be implemented as a macro which evaluates +.I stream +more than once. +.PP +.B getchar() +is equivalent to +.BI "getc(" stdin ) \fR. +.PP +.BR gets() " reads" +a line from +.I stdin +into the buffer pointed to by +.I s +until either a terminating newline or +.BR EOF , +which it replaces with +.BR '\e0' . +No check for buffer overrun is performed (see +.B BUGS +below). +.PP +.B fgets() +reads in at most one less than +.I size +characters from +.I stream +and stores them into the buffer pointed to by +.IR s . +Reading stops after an +.B EOF +or a newline. If a newline is read, it is stored into the buffer. A +.B '\e0' +is stored after the last character in the buffer. +.PP +.B ungetc() +pushes +.I c +back to +.IR stream , +cast to +.BR "unsigned char" , +where it is available for subsequent read operations. Pushed - back characters +will be returned in reverse order; only one pushback is guaranteed. +.PP +Calls to the functions described here can be mixed with each other and with +calls to other input functions from the +.B stdio +library for the same input stream. +.PP +For non-locking counterparts, see +.BR unlocked_stdio (3). +.SH "RETURN VALUE" +.BR fgetc() , " getc() " and " getchar()" +return the character read as an +.B unsigned char +cast to an +.B int +or +.B EOF +on end of file or error. +.PP +.BR gets() " and " fgets() +return +.I s +on success, and +.B NULL +on error or when end of file occurs while no characters have been read. +.PP +.B ungetc() +returns +.I c +on success, or +.B EOF +on error. +.SH "CONFORMING TO" +ANSI - C, POSIX.1. +LSB deprecates +.BR gets() . +.SH BUGS +Never use +.BR gets() . +Because it is impossible to tell without knowing the data in advance how many +characters +.B gets() +will read, and because +.B gets() +will continue to store characters past the end of the buffer, it is extremely +dangerous to use. It has been used to break computer security. Use +.B fgets() +instead. +.PP +It is not advisable to mix calls to input functions from the +.B stdio +library with low - level calls to +.B read() +for the file descriptor associated with the input stream; the results +will be undefined and very probably not what you want. +.SH "SEE ALSO" +.BR read (2), +.BR write (2), +.BR ferror (3), +.BR fopen (3), +.BR fread (3), +.BR fseek (3), +.BR puts (3), +.BR scanf (3), +.BR unlocked_stdio (3) |