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