Exportar (0) Imprimir
Expandir todo
div
EOF
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_write

Escribe datos en un archivo.

int _write(
   int fd,
   const void *buffer,
   unsigned int count 
);

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.

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.

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.

rutina

Encabezado necesario

_write

<io.h>

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

// 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 );
}
Escribió 36 bytes hasta el archivo.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft