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

NOMBRE

       write - escribe a un descriptor de fichero

SINOPSIS

       #include <unistd.h>

       ssize_t write(int fd, const void *buf, size_t num);

DESCRIPCIÓN

       write  escribe  hasta num bytes en el fichero referenciado por el descriptor de fichero fd desde el búfer
       que comienza en buf.  POSIX requiere que un read() que  pueda  demostrarse  que  ocurra  después  que  un
       write()  haya  regresado,  devuelva  los  nuevos datos. Observe que no todos los sistemas de ficheros son
       conformes con POSIX.

VALOR DEVUELTO

       En caso de éxito, se devuelve el número de bytes escritos (cero indica pues que no se ha  escrito  nada).
       En caso de error, se devuelve -1 y se pone un valor apropiado en errno. Si num es cero y el descriptor de
       fichero  se  refiere  a  un  fichero regular, se devolverá 0 sin que se cause ningún otro efecto. Para un
       fichero especial, los resultados no son transportables.

ERRORES

       EBADF  fd no es un descriptor válido de fichero o no está abierto para escritura.

       EINVAL fd está asociado a un objeto que no es adecuado para la escritura.

       EFAULT buf está afuera del espacio de direcciones accesible.

       EFBIG  se intentó escribir en un fichero que sobrepasa el  tamaño  máximo  de  fichero  definido  por  la
              implementación  o  el límite de tamaño de fichero del proceso, o escribir en una posición más allá
              del máximo desplazamiento permitido.

       EPIPE  fd está conectado a una tubería o zócalo cuyo extremo de lectura está cerrado. Cuando esto  ocurre
              el proceso de escritura recibirá también una señal SIGPIPE.  (De esta forma, el valor devuelto por
              write es visto solamente si el programa captura, bloquea o ignora esta señal.)

       EAGAIN Se ha seleccionado E/S no bloqueante empleando O_NONBLOCK y la escritura podría bloquearse.

       EINTR  La llamada ha sido interrumpida por una señal antes de que se haya escrito ningún dato.

       ENOSPC El dispositivo que contiene al fichero referenciado por fd no tiene sitio para los datos.

       EIO    Ha ocurrido un error de E/S de bajo nivel mientras se estaba modificando el nodo-í.

       Pueden ocurrir otros errores, dependiendo del objeto conectado a fd.

CONFORME A

       SVr4,  SVID,  POSIX,  X/OPEN,  4.3BSD.   SVr4 documenta condiciones de error adicionales EDEADLK, ENOLCK,
       ENOLNK, ENOSR, ENXIO, o ERANGE.  En SVr4 una  escritura  puede  ser  interrumpida  y  devolver  EINTR  en
       cualquier momento, no sólo justo antes de que se escriba algún dato.

OBSERVACIONES

       Que write regrese con éxito no garantiza que los datos hayan sido llevados a disco.  De hecho, en algunas
       implementaciones  defectuosas,  ni  siquiera  garantiza que el espacio para los datos haya sido reservado
       satisfactoriamente.  La única manera de estar seguro de ésto es llamar a  fsync(2)  después  de  escribir
       todos los datos.

VÉASE TAMBIÉN

       close(2), fcntl(2), fsync(2), ioctl(2), lseek(2), open(2), read(2), select(2), fwrite(3), writev(3)

Linux 2.0.32                                    13 diciembre 2001                                       WRITE(2)