fread

Sintaxis

#include <stdio.h>

size_t fread(void *buffer, size_t size, size_t number, FILE *file);

Descripción

Esta fución size*number caracteres desde file a buffer. El uso habitual es leer desde un fichero binario un struct o vector de structs. size establece el tamaño del struct a leer y number el número de struct a leer. La lectura hace que el cursor del fichero avance los bytes leídos.

Valor devuelto

El número de items leídos de tamaño size, o menos si ocurre un error.

Portabilidad

ANSI, POSIX

Ejemplo

La función leeDatoFicheroBinario lee un registro almacenado en un fichero en la posición indicada como tercer parámetro. El primer parámetro es un puntero al descriptor del fichero y el segundo un puntero a la zona en la que se va a almacenar el registro leído.

#include <stdio.h>
#define LNOMBRE 50
#define LDIRECCION 100
typedef struct {
   char nombre[LNOMBRE];          
   char direccion[LDIRECCION];   
   long telefono;                
} TipoDato;
int leeDatoFicheroBinario(FILE *fichero, TipoDato *dato, int pos){
   if(fseek(fichero,pos*sizeof(TipoDato),SEEK_SET)) 
      return 0;
   return fread(dato,sizeof(TipoDato),1,fichero)==1;
}