File: fopen.3

package info (click to toggle)
manpages-es 1.24a-6
  • links: PTS
  • area: main
  • in suites: potato
  • size: 4,256 kB
  • ctags: 7
  • sloc: makefile: 66; sh: 62
file content (217 lines) | stat: -rw-r--r-- 7,141 bytes parent folder | download
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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
.\" Copyright (c) 1990, 1991 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" Chris Torek and the American National Standards Committee X3,
.\" on Information Processing Systems.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)fopen.3	6.8 (Berkeley) 6/29/91
.\"
.\" Converted for Linux, Mon Nov 29 15:22:01 1993, faith@cs.unc.edu
.\" Modified, aeb, 960421, 970806
.\" Translated into Spanish Mon Jan 19 1998 by Gerardo Aburruzaga
.\" Garca <gerardo.aburruzaga@uca.es>
.\"
.TH FOPEN 3  "19 Enero 1998" "BSD" "Manual del Programador de Linux"
.SH NOMBRE
fopen, fdopen, freopen \- funciones de apertura de flujos
.SH SINOPSIS
.B #include <stdio.h>
.sp
.BI "FILE *fopen( const char *" camino ", const char *" modo );
.br
.BI "FILE *fdopen( int " descf ", const char *" modo );
.br
.BI "FILE *freopen( const char *" camino ", const char *" modo ", FILE *" flujo );
.SH DESCRIPCIN
La funcin
.B fopen
abre el fichero cuyo nombre es la cadena apuntada por
.I camino
y asocia un flujo de datos a l.
.PP
El argumento
.I modo
apunta a una cadena que empieza con una de las siguientes secuencias
(a las que pueden seguir caracteres adicionales): 
.TP
.B r
Abre un fichero de texto para lectura. El flujo se posiciona al
principio del fichero.
.TP
.B r+
Abre para lectura y escritura. El flujo se posiciona al principio del fichero.
.TP
.B w
Trunca el fichero a longitud cero o crea un fichero de texto para
escritura.  El flujo se posiciona al principio del fichero.
.TP
.B w+
Abre para lectura y escritura. El fichero se crea si no existe, en
otro caso se trunca.  El flujo se posiciona al principio del fichero.
.TP
.B a
Abre para escribir. El fichero se crea si no existe. El flujo se
posiciona al final del fichero.
.TP
.B a+
Abre para leer y escribir. El fichero se crea si no existe. El flujo se
posiciona al final del fichero.
.PP
La cadena
.I modo
tambin puede incluir la letra ``b'' como un tercer carcter o entre
los de cualquiera de las cadenas de dos caracteres descritas
anteriormente. Todo esto es estrictamente por compatibilidad con ANSI
C3.159-1989 (``ANSI C'') y no tiene efecto; la ``b'' no se tiene en
cuenta en Linux.
.PP
Cualquier fichero creado tendr de permisos
.BR S_IRUSR \&| S_IWUSR \&|  S_IRGRP \&|  S_IWGRP \&| S_IROTH \&| S_IWOTH
(0666), modificados por el valor de la mscara umask del proceso (vea
.BR umask (2)).
.PP
Las lecturas y las escrituras pueden mezclarse en flujos abiertos para
lectura/escritura en cualquier orden. Observe que C ANSI requiere que
intervenga una funcin de posicionamiento entre la salida y la
entrada, a menos que una operacin de entrada encuentre el
fin-de-fichero. (Si esta condicin no se cumple, entonces se permite a
una lectura devolver el resultado de escrituras distintas a la ms
reciente.) 
Por lo tanto es buena prctica (y desde luego necesario algunas veces
bajo Linux) hacer una operacin
.B fseek
o
.B fgetpos
entre operaciones de escritura y lectura en tal flujo. Esta operacin
puede ser aparentemente intil (como en \fIfseek(..., 0L, SEEK_CUR)\fR),
llamada por su efecto lateral de sincronizacin.
.PP
La funcin
.B fdopen
asocia un flujo con el descriptor de fichero existente,
.IR descf .
El
.I modo
del flujo (uno de los valores "r", "r+", "w", "w+", "a", "a+") debe ser
compatible con el del descriptor de fichero. Al indicador de posicin de
fichero del nuevo flujo se le asigna el valor del indicador de posicin
perteneciente a
.IR descf
y los indicadores de error y de fin-de-fichero se limpian. Los modos "w" y
"w+" no provocan el trucamiento del fichero.
El descriptor de fichero no es \fIdup\fPlicado y se cerrar cuando el
flujo creado por 
.B fdopen
se cierre.
El resultado de aplicar
.I fdopen
a un objeto compartido de memoria es indefinido.
.PP
La funcin
.B freopen
abre el fichero cuyo nombre es la cadena apuntada por
.I camino
y asocia el flujo apuntado por
.I flujo
con l. El flujo original (si existe) se cierra. El argumento
.I modo
se emplea igual que en la funcin \fBfopen\fP. El uso principal de
la funcin
.B freopen
es cambiar el fichero asociado con un flujo de texto estndar
.IR "" ( stderr ", " stdin ", o " stdout ).
.SH "VALOR DEVUELTO"
Cuando acaban bien,
.BR fopen ,
.B fdopen
y
.B freopen
devuelven un puntero a \fBFILE\fP. Cuando no, devuelven
.B NULL
y la variable global 
.I errno
contiene un valor que indica el error.
.SH ERRORES
.TP
.B EINVAL
El
.I modo
pasado a
.BR fopen ,
.BR fdopen ,
o a
.B freopen
no era vlido.
.PP
Las funciones
.BR fopen ,
.B fdopen
y
.B freopen
tambin pueden fallar y poner un valor en 
.I errno
para cualquiera de los errores especificados para la rutina
.BR malloc (3).
.PP
La funcin
.B fopen
tambin puede fallar y poner un valor en
.I errno
para cualquiera de los errores especificados para la rutina
.BR open (2).
.PP
La funcin
.B fdopen
tambin puede fallar y poner un valor en
.I errno
para cualquiera de los errores especificados para la rutina
.BR fcntl (2).
.PP
La funcin
.B freopen
tambin puede fallar y poner un valor en
.I errno
para cualquiera de los errores especificados para las rutinas
.BR open (2),
.BR fclose (3)
y
.BR fflush (3).
.SH "VASE TAMBIN"
.BR open "(2), " fclose (3)
.SH CONFORME A
Las funciones
.B fopen
y
.B freopen
son conformes con ANSI C3.159-1989 (``C ANSI'').  La funcin
.B fdopen
es conforme con IEEE Std1003.1-1988 (``POSIX.1'').