Allora, firma stilizzata:
fread (dove_metto_i_bytes, da_dove_parto, dove_arrivo, che_FILE_usare)
quel dove metto i bytes è un void*, ovvero un puntatore a qualsiasi tipo di dato(credo, puntarore a niente... non saprei definirlo ), visto che è richiesto un puntatore(e che verrà modificato quindi è necessario passarlo per riferimento e non per valore come è di default) devi passare non una variabile, ma l'indirizzo della variabile usando &(operatore riferimento).
Da dove parto indica da che byte patire, e dove_arrivo l'ultimo byte da leggere sarà dove_arrivo-1, che_FILE_usare mi sembra semplice, l'handle FILE che rappresenta appunto il file da leggere.
Stesso discorso per fwrite, ma in buffer ci saranno i byte da scrivere nel file, basterà passare il buffer per valore(& non necessario), e da_dove_parto e dove_arrivo saranno riferiti all'array in questione.
Esempio:
codice:
#include <stdio.h>
int main ()
{
FILE *file;
char buffer[30];
file = fopen ("Esempio.txt", "r");
fread (&buffer, 1, 30, file);
buffer[30] = '\0';//1 byte in + per il carattere di fine stringa
printf("%s", buffer);
return 0;
}