fread

 

Pour obtenir la dernière documentation sur Visual Studio 2017 RC, consultez Documentation Visual Studio 2017 RC.

Lit les données à partir d’un flux de données.

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

Paramètres

buffer
Emplacement de stockage des données.

size
Taille en octets de l’élément.

count
Nombre maximal d’éléments à lire.

stream
Pointeur vers la structure FILE .

freadRetourne le nombre d’éléments complets réellement lu, ce qui peut être inférieur à count si une erreur se produit ou si la fin du fichier se trouve avant d’atteindre count . Utilisez le feof ou ferror fonction permettant de distinguer une erreur de lecture à partir d’une condition de fin de fichier. Si size ou count est 0, fread retourne 0 et le contenu de la mémoire tampon est identiques. Si stream ou buffer est un pointeur null, fread appelle le Gestionnaire de paramètre non valide, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, cette fonction affecte à errno la valeur EINVAL et retourne 0.

Consultez la page _doserrno, errno, _sys_errlist et _sys_nerr pour plus d’informations sur les autres codes d’erreur.

Le fread fonction lit jusqu'à count éléments de size octets à partir de l’entrée stream et les stocke dans buffer . Le pointeur de fichier associé stream (le cas échéant) est augmenté le nombre d’octets lus réellement. Si le flux donné est ouvert en mode texte, paires retour de chariot sont remplacées par les caractères de saut de ligne unique. 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ée si une erreur se produit. La valeur d’un élément de lecture partielle ne peut pas être déterminée.

Cette fonction verrouille les autres threads. Si vous avez besoin d’une version sans verrouillage, utilisez _fread_nolock.

FonctionEn-tête requis
fread<stdio.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité dans l'introduction.

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

Wrote 25 items  
Number of items read = 25  
Contents of buffer = zyxwvutsrqponmlkjihgfedcb  

System::IO::FileStream::Read

Flux d’e/s
fwrite
_read

Afficher: