Share via


fread

Lit des données à partir d'un flux.

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

Paramètres

  • buffer
    Emplacement de stockage des données.

  • size
    taille d'élément en octets.

  • count
    nombre maximal d'éléments à lire.

  • stream
    Pointeur vers la structure d' FILE .

Valeur de retour

fread retourne le nombre d'éléments dans le effectue, qui peuvent être moins qu' count si une erreur se produit ou si la fin du fichier est produite avant countde positionnement*.* Utilisez la fonction d' feof ou d' ferror pour distinguer une erreur de lecture d'une condition fin de fichier.Si size ou count est 0, fread retourne 0 et le contenu de la mémoire tampon reste inchangé.si stream ou buffer est un pointeur null, fread appelle le gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, des ensembles errno de cette fonction à EINVAL et retourne 0.

Consultez _doserrno, errno, _sys_errlist, et _sys_nerr pour plus d'informations sur ce point, ainsi que d'autres, les codes d'erreur.

Notes

La fonction d' fread lit jusqu'à count des éléments des octets d' size de l'entrée stream et les stocke dans buffer*.* Le pointeur de fichier associé à stream (le cas échéant) est augmenté par le nombre d'octets le effectue.Si le flux donné est ouvert en mode texte, des paires saut de ligne-retour chariot sont remplacées par les caractères unique de saut de ligne.Le remplacement n'a aucun effet sur le pointeur de fichier ou la valeur de retour.La position du pointeur de fichier est indéterminé si une erreur se produit.la valeur partiellement d'un élément de lecture ne peut pas être déterminée.

Cette fonction verrouille d'autres threads.si vous avez besoin d'une version non verrouillante, utilisez _fread_nolock.

Configuration requise

Fonction

en-tête requis

fread

<stdio.h>

Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.

Exemple

// 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" );
}
  

Équivalent .NET Framework

System : : E/S : : FileStream : : lecture

Voir aussi

Référence

E/S de flux

fwrite

_read