Provided by: manpages-es_1.55-10_all bug

NOMBRE

       lseek - reposiciona el puntero de lectura/escritura de un fichero

SINOPSIS

       #include <sys/types.h>
       #include <unistd.h>

       off_t lseek(int fildes, off_t offset, int whence);

DESCRIPCI'ON

       La  funcion  lseek  reposiciona  el  puntero  del descriptor de fichero
       fildes con el argumento offset de acuerdo con la  directiva  whence  as
       follows:

       SEEK_SET
              El puntero se coloca a offset bytes.

       SEEK_CUR
              El  numero  de  bytes  indicado en offset se suma a la direccion
              actual y el puntero se coloca en la direccion resultante.

       SEEK_END
              El puntero se coloca al final del fichero mas offset bytes.

       La funcion lseek permite colocar el  puntero  de  fichero  despues  del
       final  de  fichero.   Si  despues  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).

VALOR DEVUELTO

       En  el  caso  de una ejecucion correcta, lseek devuelve la posicion 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 errno se
       coloca el tipo de error.

ERRORES

       EBADF  fildes no es un descriptor de fichero abierto.

       ESPIPE fildes esta asociado a una tuberia, socket, o FIFO.

       EINVAL whence no es un valor adecuado.

CONFORME A

       SVr4, POSIX, BSD 4.3

RESTRICCIONES

       Algunos dispositivos son incapaces de buscar y POSIX no especifica  que
       dispositivos deben soportar la busqueda.

       Restricciones   especificas   de  Linux:  el  uso  de  lseek  sobre  un
       dispositivo tty (terminal) devuelve ESPIPE. Otros sistemas devuelven el
       numero  de  caracteres  escritos,  usando  SEEK_SET  para establecer el
       contador. Algunos dispositivos, como por ejemplo /dev/null, no provocan
       el error ESPIPE, pero devuelven un puntero cuyo valor es indefinido.

OBSERVACIONES

       La  utilizacion  de  whence  en este documento es incorrecta en ingles,
       pero se usa por motivos historicos.  Cuando convierta  codigo  antiguo,
       sustituya los valores para whence con las siguientes macros:

       antiguo    nuevo

       0         SEEK_SET
       1         SEEK_CUR
       2         SEEK_END
       L_SET     SEEK_SET
       L_INCR    SEEK_CUR
       L_XTND    SEEK_END

       SVR1-3 devuelve long en lugar de off_t, BSD devuelve int.

       Observe  que  los  descriptores de fichero creados con dup(2) o fork(2)
       comparten el puntero actual de fichero, por lo que reposicionarse sobre
       tales ficheros puede estar sujeto a condiciones de carrera.

V'EASE TAMBI'EN

       dup(2), fork(2), open(2), fseek(3)