WRITE(2) | Manual del Programador de Linux | WRITE(2) |
write - escribe a un descriptor de fichero
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t num);
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.
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.
Pueden ocurrir otros errores, dependiendo del objeto conectado a fd.
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.
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.
close(2), fcntl(2), fsync(2), ioctl(2), lseek(2), open(2), read(2), select(2), fwrite(3), writev(3)
13 diciembre 2001 | Linux 2.0.32 |