Section: Manual del Programador de Linux (2)
Updated: 12 julio 1997
Index Return to Main
Contents
read - lee de un descriptor de fichero
#include <unistd.h> ssize_t read(int fd, void *buf, size_t nbytes);
intenta leer hasta nbytes bytes del fichero cuyo descriptor de fichero es fd y guardarlos en la zona de memoria que empieza en buf.
Si nbytes es cero, read() devuelve cero y no tiene otro efecto. Si nbytes es mayor que SSIZE_MAX, el resultado es indefinido.
En caso de éxito, se devuelve el número de bytes leídos (cero indica fin de fichero), y el indicador de posición del fichero avanza este número de bytes. No es un error si este número es menor que el número de bytes pedidos; esto puede suceder por ejemplo porque ahora mismo haya disponible un número menor de bytes (quizás porque estamos cerca del fin-de-fichero, o porque estamos leyendo de una interconexión, o de una terminal), o porque read() ha sido interrumpido por una señal. En caso de error, se devuelve -1, y se pone un valor apropiado en errno. En este caso se deja indeterminado si el indicador de posición del fichero (si lo hay) cambia o no.
Pueden ocurrir otros errores, dependiendo del objeto conectado a fd. POSIX permite que un read que se interrumpa tras leer algunos datos devuelva -1 (con el valor EINTR en errno) o que devuelva el número de bytes ya leídos.
SVr4, SVID, AT&T, POSIX, X/OPEN, BSD 4.3
En sistemas de ficheros NFS, leer cantidades pequeñas de datos sólo actualizará la fecha de acceso al fichero la primera vez, las demás llamadas pueden no hacerlo más. Esto está producido por el mecanismo de caché en la parte cliente, porque la mayoría si no todos los clientes NFS le dejan las actualizaciones de la fecha/hora de acceso al servidor y las lecturas en la parte del cliente satisfechas por el caché del cliente no provocarán actualizaciones del atime (fecha/hora de acceso) en el servidor puesto que no hay lecturas en la parte del servidor. La semántica de UNIX puede obtenerse deshabilitando el atributo de caché en la parte cliente, pero en la mayoría de las situaciones esto aumentará sustancialmente la carga del servidor y disminuirá el rendimiento.
(2), fcntl(2), ioctl(2), lseek(2), readdir(2), readlink(2), select(2), write(2), fread(3)
This document was created by man2html, using
the manual pages.
Time: 06:16:19 GMT, January 22, 2005