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