.\" Hey Emacs! This file is -*- nroff -*- source. .\" .\" This manpage is Copyright (C) 1992 Drew Eckhardt; .\" 1993 Michael Haardt, Ian Jackson. .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" Modified Sat Jul 24 13:35:59 1993 by Rik Faith .\" Modified Sun Nov 28 17:19:01 1993 by Rik Faith .\" Modified Sat Jan 13 12:58:08 1996 by Michael Haardt .\" .\" Modified Sun Jul 21 18:59:33 1996 by Andries Brouwer .\" 2001-12-13 added remark by Zack Weinberg .\" Translated into Spanish Mon Feb 9 1998 by Gerardo Aburruzaga .\" García .\" Translation revised Mon Aug 17 1998 by Juan Piernas .\" Revisado por Miguel Pérez Ibars el 24-diciembre-2004 .\" .TH WRITE 2 "13 diciembre 2001" "Linux 2.0.32" "Manual del Programador de Linux" .SH NOMBRE write \- escribe a un descriptor de fichero .SH SINOPSIS .B #include .sp .BI "ssize_t write(int " fd ", const void *" buf ", size_t " num ); .SH DESCRIPCIÓN .B write escribe hasta .I num bytes en el fichero referenciado por el descriptor de fichero .I fd desde el búfer que comienza en .IR buf. POSIX requiere que un \fBread()\fP que pueda demostrarse que ocurra después que un \fBwrite()\fP haya regresado, devuelva los nuevos datos. Observe que no todos los sistemas de ficheros son conformes con POSIX. .SH "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 \fIerrno\fP. Si \fInum\fP 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. .SH ERRORES .TP .B EBADF .I fd no es un descriptor válido de fichero o no está abierto para escritura. .TP .B EINVAL .I fd está asociado a un objeto que no es adecuado para la escritura. .TP .B EFAULT .I buf está afuera del espacio de direcciones accesible. .TP .B 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. .TP .B EPIPE .I 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 .BR SIGPIPE. (De esta forma, el valor devuelto por write es visto solamente si el programa captura, bloquea o ignora esta señal.) .TP .B EAGAIN Se ha seleccionado E/S no bloqueante empleando .B O_NONBLOCK y la escritura podría bloquearse. .TP .B EINTR La llamada ha sido interrumpida por una señal antes de que se haya escrito ningún dato. .TP .B ENOSPC El dispositivo que contiene al fichero referenciado por .I fd no tiene sitio para los datos. .TP .B EIO Ha ocurrido un error de E/S de bajo nivel mientras se estaba modificando el nodo-í. .PP Pueden ocurrir otros errores, dependiendo del objeto conectado a .IR fd . .SH "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. .SH OBSERVACIONES Que .B 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 .BR fsync (2) después de escribir todos los datos. .SH "VÉASE TAMBIÉN" .BR close (2), .BR fcntl (2), .BR fsync (2), .BR ioctl (2), .BR lseek (2), .BR open (2), .BR read (2), .BR select (2), .BR fwrite (3), .BR writev (3)