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'ON

       write  escribe  hasta  num  bytes  en  el  fichero  referenciado por el
       descriptor de fichero fd desde el bufer que  comienza  en  buf.   POSIX
       requiere  que un read() que pueda demostrarse que ocurra despues 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 exito, se devuelve el numero 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  devolvera  0  sin  que  se
       cause  ningun  otro efecto. Para un fichero especial, los resultados no
       son transportables.

ERRORES

       EBADF  fd no es un descriptor valido de fichero o no esta abierto  para
              escritura.

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

       EFAULT buf esta afuera del espacio de direcciones accesible.

       EFBIG  se intento escribir en un fichero que sobrepasa el tamano maximo
              de  fichero definido por la implementacion o el limite de tamano
              de fichero del proceso, o escribir en una posicion mas alla  del
              maximo desplazamiento permitido.

       EPIPE  fd esta conectado a una tuberia o zocalo cuyo extremo de lectura
              esta  cerrado.  Cuando  esto  ocurre  el  proceso  de  escritura
              recibira  tambien  una  senal SIGPIPE.  (De esta forma, el valor
              devuelto por write es visto solamente si  el  programa  captura,
              bloquea o ignora esta senal.)

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

       EINTR  La llamada ha sido interrumpida por una senal antes  de  que  se
              haya escrito ningun 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-i.

       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 solo justo antes de que se escriba algun dato.

OBSERVACIONES

       Que write regrese con exito 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 unica manera de estar seguro de esto es llamar
       a fsync(2) despues de escribir todos los datos.

V'EASE TAMBI'EN

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