Provided by: manpages-es_1.55-9_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)