Compartir a través de


fread

Lee los datos de una secuencia.

size_t fread( 
   void *buffer,
   size_t size,
   size_t count,
   FILE *stream 
);

Parámetros

  • buffer
    Ubicación de almacenamiento de los datos.

  • size
    Tamaño del elemento en bytes.

  • count
    Número máximo de elementos que se va a leer.

  • stream
    Puntero a la estructura FILE.

Valor devuelto

fread devuelve el número de elementos completos lee realmente, que pueden ser menor que count si se produce un error o si el final del archivo se encuentra antes de countque consiga*.* Utilice la función de feof o de ferror para distinguir un error de una condición de fin de archivo. Si size o count es 0, fread devuelve 0 y el contenido del búfer no se modifican. Si stream o buffer es un puntero NULL, fread 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, conjuntos errno de esta función a EINVAL y devuelven 0.

Vea _doserrno, errno, _sys_errlist y _sys_nerr para obtener más información sobre estos y otros códigos de error.

Comentarios

La función de fread lee hasta count elementos de bytes de size de entrada stream y los almacena en buffer. El puntero de archivo asociado a stream (si hay alguno) es aumentado por el número de bytes leídos realmente. Si la secuencia especificada se abre en modo de texto, los pares de retorno- avance de línea de carro se reemplazan por los únicos caracteres de avance de línea. El reemplazo no tiene ningún efecto en el puntero de archivo o el valor devuelto. La posición del archivo (el archivo puntero es indeterminado si se produce un error. El valor de un elemento de lectura no se puede determinar parcialmente.

Esta función bloquea out otros subprocesos. Si necesita una versión de modificación limitada de interpretación, utilice _fread_nolock.

Requisitos

Función

Encabezado necesario

fread

<stdio.h>

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

Ejemplo

// crt_fread.c
// This program opens a file named FREAD.OUT and
// writes 25 characters to the file. It then tries to open
// FREAD.OUT and read in 25 characters. If the attempt succeeds,
// the program displays the number of actual items read.
 
#include <stdio.h>

int main( void )
{
   FILE *stream;
   char list[30];
   int  i, numread, numwritten;

   // Open file in text mode:
   if( fopen_s( &stream, "fread.out", "w+t" ) == 0 )
   {
      for ( i = 0; i < 25; i++ )
         list[i] = (char)('z' - i);
      // Write 25 characters to stream 
      numwritten = fwrite( list, sizeof( char ), 25, stream );
      printf( "Wrote %d items\n", numwritten );
      fclose( stream );

   }
   else
      printf( "Problem opening the file\n" );

   if( fopen_s( &stream, "fread.out", "r+t" ) == 0 )
   {
      // Attempt to read in 25 characters 
      numread = fread( list, sizeof( char ), 25, stream );
      printf( "Number of items read = %d\n", numread );
      printf( "Contents of buffer = %.25s\n", list );
      fclose( stream );
   }
   else
      printf( "File could not be opened\n" );
}
  

Equivalente en .NET Framework

System::IO::FileStream::Read

Vea también

Referencia

E/S de secuencia

fwrite

_read