fgetpos, fseek, fsetpos, ftell, rewind - reposicionarse en un flujo
Biblioteca Estándar C (
libc,
-lc)
#include <stdio.h>
int fseek(FILE *flujo, long desplto, int origen);
long ftell(FILE *flujo);
void rewind(FILE *flujo);
int fgetpos(FILE *restrict flujo, fpos_t *restrict pos);
int fsetpos(FILE *flujo, const fpos_t *pos);
La función
fseek() mueve el indicador de posición del
fichero correspondiente al flujo de datos apuntado por
flujo. La nueva
posición, medida en bytes, se obtiene añadiendo
desplto
bytes a la posición especificada por
origen. Si
origen es
SEEK_SET,
SEEK_CUR, o
SEEK_END, el desplazamiento es
relativo al comienzo del fichero, a la posición actual, o al final del
fichero, respectivamente. Una llamada exitosa a la función
fseek() limpia el indicador de fin-de-fichero para el flujo y deshace
cualquier efecto de la función
ungetc(3) en el mismo flujo.
La función
ftell() obtiene el valor actual del indicador de
posición del fichero para el flujo apuntado por
flujo.
La función
rewind() mueve el indicador de posición del
fichero para el flujo apuntado por
flujo al principio del fichero. Es
equivalente a:
(void) fseek(stream, 0L, SEEK_SET)
salvo en que el indicador de error para el flujo también se limpia (vea
clearerr(3)).
Las funciones
fgetpos() y
fsetpos() son interfaces alternativas
equivalentes a
ftell() y
fseek() (con el
origen puesto a
SEEK_SET), poniendo y almacenando el valor actual del desplazamiento
desde o en el objeto referenciado por
pos. En algunos sistemas no UNIX
un objeto
fpos_t puede ser un objeto complejo y estas rutinas pueden
ser la única manera de reposicionar un flujo de texto de forma
transportable.
If the stream refers to a regular file and the resulting stream offset is beyond
the size of the file, subsequent writes will extend the file with a hole, up
to the offset, before committing any data. See
lseek(2) for details on
file seeking semantics.
The
rewind() function returns no value. Upon successful completion,
fgetpos(),
fseek(),
fsetpos() return 0, and
ftell() returns the current offset. Otherwise, -1 is returned and
errno is set to indicate the error.
- EINVAL
- The whence argument to fseek() was not
SEEK_SET, SEEK_END, or SEEK_CUR. Or: the resulting
file offset would be negative.
- ESPIPE
- The file descriptor underlying stream is not
seekable (e.g., it refers to a pipe, FIFO, or socket).
Las funciones
fgetpos(),
fseek(),
fsetpos() y
ftell() pueden fallar también y poner un valor en
errno
para cualquiera de los errores especificados para las rutinas
fflush(3),
fstat(2),
lseek(2) y
malloc(3).
Para obtener una explicación de los términos usados en esta
sección, véase
attributes(7).
Interfaz |
Atributo |
Valor |
fseek(), ftell(), rewind(), fgetpos(),
fsetpos() |
Seguridad del hilo |
Multi-hilo seguro |
POSIX.1-2001, POSIX.1-2008, C99.
lseek(2),
fseeko(3)
La traducción al español de esta página del manual fue
creada por Gerardo Aburruzaga García <
[email protected]>
Esta traducción es documentación libre; lea la
GNU
General Public License Version 3 o posterior con respecto a las
condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página
del manual, envíe un correo electrónico a
[email protected]