_read

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Lee datos desde un archivo.

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

Parámetros

fd
Descriptor de archivo que hace referencia al archivo abierto.

búfer
Ubicación de almacenamiento de los datos.

recuento
Número máximo de bytes.

_leer devuelve el número de bytes leídos, que puede ser menor que recuento si hay menos de recuento bytes restante en el archivo o si el archivo se abrió en modo de texto, en cuyo caso cada línea de retorno de carro fuente par (CR-LF) se reemplaza con un carácter de avance de línea única. Sólo el carácter de salto de línea único se cuenta en el valor devuelto. El reemplazo no afecta el puntero de archivo.

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

Si búfer es NULL, se invoca el controlador de parámetros no válidos. Si la ejecución puede continuar, la función devuelve -1 y errno está establecido en EINVAL.

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

El _read función lee un máximo de recuento bytes en búfer desde el archivo asociado a fd. Comienza la operación de lectura en la posición actual del puntero de archivo asociado con el archivo especificado. Después de la operación de lectura, el puntero de archivo señala al carácter siguiente no leído.

Si el archivo se abrió en modo de texto, la lectura finaliza cuando _read encuentra un carácter CTRL+Z, que se trata como un indicador de fin de archivo. Utilice _lseek para borrar el indicador de fin de archivo.

RutinaEncabezado necesario
_read<io.h>

Para obtener más información sobre compatibilidad, vea Compatibility en la introducción.

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  

Salidas de bajo nivel
_creat, _wcreat
fread
_open, _wopen
_write

Mostrar: