Exportar (0) Imprimir
Expandir todo
and
div
eof
not
or
xor
Expandir Minimizar
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_read

Lee datos de un archivo.

int _read(
   int fd,
   void *buffer,
   unsigned int count 
);

fd

Descriptor de archivo que hace referencia al archivo abierto.

buffer

Ubicación de almacenamiento de los datos.

count

Número de bytes máximo.

_read devuelve el número de bytes leídos, que puede ser menor que cuenta si hay menos que los bytes que quedan en el archivo o si el archivo se abre en modo de texto, en cuyo caso cada par de fuentes de la retorno- línea de carro (CR-LF) se reemplaza por un único carácter de avance de línea. Sólo el único carácter de avance de línea se cuenta en el valor devuelto. El reemplazo no afecta al puntero de archivo.

Si la función intenta leer al final del archivo, devuelve 0. Si fd no es válido, el archivo no está abierto para lectura, o el archivo está bloqueado, el controlador no válido de parámetro se invoca, como se describe en Validación de parámetros. Si la ejecución puede continuar, la función devuelve – 1 y establece errno a EBADF.

Si el búfer es nulo, se invoca el controlador no válido del parámetro. Si la ejecución puede continuar, la función devuelve -1 y errno se establece en EINVAL.

Para obtener más información sobre estos y otros códigos de retorno, vea _doserrno, errno, _sys_errlist, y _sys_nerr.

La función de _read lee un número máximo de bytes del recuento en el búfer de archivo asociado a fd. La operación de lectura comienza en la posición actual del puntero de archivo asociado al archivo especificado. Después de la operación de lectura, los puntos de ese puntero al carácter no leídos siguiente.

Si el archivo se abre en modo de texto, lectura finaliza cuando _read encuentra un carácter de CTRL+Z, que se trata como un mensaje de fin de archivo. Uso _lseek de borrar la marca de fin de archivo.

Rutina

Encabezado necesario

_read

<io.h>

Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.

Bibliotecas

Todas las versiones de las bibliotecas en tiempo de ejecución de C.

// crt_read.c
/* This program opens a file named crt_read.txt
 * and tries to read 60,000 bytes from
 * that file using _read. It then displays the
 * actual number of bytes read.
 */

#include <fcntl.h>      /* Needed only for _O_RDWR definition */
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <share.h>

char buffer[60000];

int main( void )
{
   int fh;
   unsigned int nbytes = 60000, bytesread;

   /* Open file for input: */
   if( _sopen_s( &fh, "crt_read.txt", _O_RDONLY, _SH_DENYNO, 0 ) )
   {
      perror( "open failed on input file" );
      exit( 1 );
   }

   /* Read in input: */
   if( ( bytesread = _read( fh, buffer, nbytes ) ) <= 0 )
      perror( "Problem reading file" );
   else
      printf( "Read %u bytes from file\n", bytesread );

   _close( fh );
}

Line one.
Line two.

Read 19 bytes from file

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft