summaryrefslogtreecommitdiff
path: root/reference/C/MAN/gets.htm
blob: 54a79a5979cd30c387b9dbef5cfde36e96d21852 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
<TITLE>ungetc</TITLE>
<body bgcolor="#ffffcc">
<hr>
<pre>



<h3>GETS(3)             Linux Programmer's Manual             GETS(3)
</h3>

<h3>NAME
</h3>       fgetc, fgets, getc, getchar, gets, ungetc - input of char-
       acters and strings

<h3>SYNOPSIS
</h3>       #include &lt;stdio.h&gt;

       int fgetc(FILE *stream);
       char *fgets(char *s, int size, FILE *stream);
       int getc(FILE *stream);
       int getchar(void);
       char *gets(char *s);
       int ungetc(int c, FILE *stream);

<h3>DESCRIPTION
</h3>       fgetc() reads the next character from stream  and  returns
       it  as  an  unsigned char cast to an int, or EOF on end of
       file or error.

       getc() is equivalent to fgetc()  except  that  it  may  be
       implemented  as  a  macro which evaluates stream more than
       once.

       getchar() is equivalent to getc(stdin).

       gets() reads a line from stdin into the buffer pointed  to
       by  s  until either a terminating newline or EOF, which it
       replaces with '\0'.  No check for buffer overrun  is  per-
       formed (see BUGS below).

       fgets()  reads  in at most one less than n characters from
       stream and stores them into the buffer pointed  to  by  s.
       Reading  stops after an EOF or a newline.  If a newline is
       read, it is stored into the  buffer.   A  '\0'  is  stored
       after the last character in the buffer.

       ungetc()  pushes  c back to stream, cast to unsigned char,
       where it is  available  for  subsequent  read  operations.
       Pushed  -  back  characters  will  be  returned in reverse
       order; only one pushback is guaranteed.

       Calls to the functions described here can  be  mixed  with
       each  other  and  with calls to other input functions from
       the stdio library for the same input stream.

<h3>RETURN VALUES
</h3>       fgetc(), getc() and getchar() return the character read as
       an  unsigned  char cast to an int or EOF on end of file or
       error.

       gets() and fgets() return s on success, and NULL on end of
       file or error.

       ungetc() returns c on success, or EOF on error.



<h3>GNU                       April 4, 1993                         1
</h3>




<h3>GETS(3)             Linux Programmer's Manual             GETS(3)
</h3>

<h3>CONFORMS TO
</h3>       ANSI - C, POSIX.1

<h3>BUGS
</h3>       Because  it is impossible to tell without knowing the data
       in advance how  many  characters  gets()  will  read,  and
       because  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 fgets()
       instead.

       It is not advisable to mix calls to input  functions  from
       the stdio library with low - level calls to read() for the
       file descriptor associated  with  the  input  stream;  the
       results  will  be undefined and very probably not what you
       want.

</pre>
<hr>
<h3>SEE ALSO
</h3><p>
<a href=read.htm>read</a>, 
<a href=write.htm>write</a>, 
<a href=fopen.htm>fopen</a>, 
<a href=fread.htm>fread</a>, 
<a href=scanf.htm>scanf</a>, 
<a href=puts.htm>puts</a>, 
<a href=fseek.htm>fseek</a>, 
<a href=ferror.htm>ferror</a>, 
<pre>





































<h3>GNU                       April 4, 1993                         2
</h3>


</pre>
<P>
<hr>
<p>
<center>
<table border=2 width=80%>
<tr align=center>
<td width=25%>
<a href=../cref.html>Top</a>
</td><td width=25%>
<a href=../master_index.html>Master Index</a>
</td><td width=25%>
<a href=../SYNTAX/keywords.html>Keywords</a>
</td><td width=25%>
<a href=../FUNCTIONS/funcref.htm>Functions</a>
</td>
</tr>
</table>
</center>
<p>
<hr>

This manual page was brought to you by <i>mjl_man V-2.0</i>