#include <stdio.h> size_t fread(void *buffer, size_t size, size_t number, FILE *file);
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.
El número de items leídos de tamaño size, o menos si ocurre un error.
ANSI, POSIX
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; }