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)