_write
Escribe datos en un archivo.
int _write(
int fd,
const void *buffer,
unsigned int count
);
Parámetros
fd
Descriptor de archivo del archivo en las que se escriben los datos.buffer
Datos que se van a escribir.count
número de bytes.
Valor devuelto
Si es correcto, _write devuelve el número de bytes escritos realmente.Si que queda el espacio real en el disco es menor que el tamaño del búfer la función intenta escribir en el disco, _write produce un error y no vacía el contenido del búfer cualquiera de los en el disco.un valor devuelto de – 1 indica un error.Si se pasan parámetros no válidos, esta función invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.Si la ejecución puede continuar, la función devuelve -1 y errno se establece en uno de tres valores: EBADF, que significa descriptor de archivo no es válido o el archivo no se abre para escribir; ENOSPC, que significa que no hay suficiente espacio está en el dispositivo para la operación; o EINVAL, lo que significa que buffer era puntero NULL.
Vea _doserrno, errno, _sys_errlist, y _sys_nerr para obtener más información al respecto, y otro, códigos de retorno.
Si el archivo se abre en modo de texto, cada carácter de avance de línea se reemplaza con un retorno de carro – par de avance de línea en la salida.El reemplazo no afecta al valor devuelto.
Comentarios
La función de _write escribe los bytes de count de buffer en el archivo asociado a fd.La operación de escritura comienza en la posición actual del puntero de archivo (si existe) asociado al archivo especificado.Si el archivo está abierto para anexar, la operación se inicia al final actual del archivo.Después de la operación de escritura, el puntero de archivo es aumentado por el número de bytes escritos realmente.
Cuando la escritura en archivos abierto en modo de texto, _write trata un carácter de CTRL+Z como el fin de archivo lógico.Al escribir un dispositivo, _write trata un carácter de CTRL+Z en el búfer como terminador de salida.
Requisitos
rutina |
Encabezado necesario |
---|---|
_write |
<io.h> |
Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.
Ejemplo
// crt__write.c
//
// This program opens a file for output and uses _write to write
// some bytes to the file.
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <share.h>
char buffer[] = "This is a test of '_write' function";
int main( void )
{
int fileHandle = 0;
unsigned bytesWritten = 0;
if ( _sopen_s(&fileHandle, "write.o", _O_RDWR | _O_CREAT,
_SH_DENYNO, _S_IREAD | _S_IWRITE) )
return -1;
if (( bytesWritten = _write( fileHandle, buffer, sizeof( buffer ))) == -1 )
{
switch(errno)
{
case EBADF:
perror("Bad file descriptor!");
break;
case ENOSPC:
perror("No space left on device!");
break;
case EINVAL:
perror("Invalid parameter: buffer was NULL!");
break;
default:
// An unrelated error occured
perror("Unexpected error!");
}
}
else
{
printf_s( "Wrote %u bytes to file.\n", bytesWritten );
}
_close( fileHandle );
}