'\" t .\" Copyright (c) 1980, 1991 Regents of the University of California. .\" All rights reserved. .\" .\" 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. .\" .\" @(#)lseek.2 6.5 (Berkeley) 3/10/91 .\" .\" Modified Fri Jul 23 22:17:00 1993 by Rik Faith .\" Modified 10 June 1995 by Andries Brouwer .\" Modified Thu Oct 31 15:18:33 1996 by Eric S. Raymond .\" Modified Sat Jan 17 13:00:32 MET 1998 by Michael Haardt .\" Translation revised May 3 1998 by Juan Piernas .\" Translation revised Tue Aug 18 1998 by Juan Piernas .\" Translation revised Sat Jan 8 2000 by Juan Piernas .\" .TH LSEEK 2 "17 enero 1998" "Linux" "Manual del Programador de Linux" .SH NOMBRE lseek \- reposiciona el puntero de lectura/escritura de un fichero .SH SINOPSIS .B #include .br .B #include .sp .BI "off_t lseek(int " fildes ", off_t " offset ", int " whence ); .SH DESCRIPCIÓN La función .B lseek reposiciona el puntero del descriptor de fichero .I fildes con el argumento .I offset de acuerdo con la directiva .I whence as follows: .TP .B SEEK_SET El puntero se coloca a .I offset bytes. .TP .B SEEK_CUR El número de bytes indicado en .I offset se suma a la dirección actual y el puntero se coloca en la dirección resultante. .TP .B SEEK_END El puntero se coloca al final del fichero más .I offset bytes. .PP La función .B lseek permite colocar el puntero de fichero después del final de fichero. Si después se escriben datos en este punto, las lecturas siguientes de datos dentro del hueco que se forma devuelven ceros (hasta que realmente se escriban datos dentro de ese hueco). .SH "VALOR DEVUELTO" En el caso de una ejecución correcta, .B lseek devuelve la posición del puntero resultante medida en bytes desde el principio del fichero. Si se produce un error, se devuelve el valor (off_t)\-1 y en .I errno se coloca el tipo de error. .SH ERRORES .TP .B EBADF .I fildes no es un descriptor de fichero abierto. .TP .B ESPIPE .I fildes está asociado a una tubería, socket, o FIFO. .TP .B EINVAL .I whence no es un valor adecuado. .SH "CONFORME A" SVr4, POSIX, BSD 4.3 .SH RESTRICCIONES Algunos dispositivos son incapaces de buscar y POSIX no especifica qué dispositivos deben soportar la búsqueda. Restricciones específicas de Linux: el uso de \fBlseek\fP sobre un dispositivo tty (terminal) devuelve \fBESPIPE\fP. Otros sistemas devuelven el número de caracteres escritos, usando SEEK_SET para establecer el contador. Algunos dispositivos, como por ejemplo \fB/dev/null\fP, no provocan el error \fBESPIPE\fP, pero devuelven un puntero cuyo valor es indefinido. .SH OBSERVACIONES La utilización de .I whence en este documento es incorrecta en inglés, pero se usa por motivos históricos. Cuando convierta código antiguo, sustituya los valores para \fIwhence\fP con las siguientes macros: .PP .TS c c l l. antiguo nuevo 0 SEEK_SET 1 SEEK_CUR 2 SEEK_END L_SET SEEK_SET L_INCR SEEK_CUR L_XTND SEEK_END .TE .PP SVR1-3 devuelve \fBlong\fP en lugar de \fBoff_t\fP, BSD devuelve \fBint\fP. .PP Observe que los descriptores de fichero creados con .BR dup (2) o .BR fork (2) comparten el puntero actual de fichero, por lo que reposicionarse sobre tales ficheros puede estar sujeto a condiciones de carrera. .SH "VÉASE TAMBIÉN" .BR dup (2), .BR fork (2), .BR open (2), .BR fseek (3)