bionic (2) write.2.gz

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)