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