Les deux fonctions suivantes permettent d'écrire et de lire des zones mémoire, le contenu de la mémoire est directement écrit sur disque sans transformation, et réciproquement le contenu du disque est placé tel quel en mémoire. L'intérêt de ces fonctions est d'obtenir des entrées sorties plus rapides et des sauvegardes disque plus compactes mais malheureusement illisibles (binaire).
#include <stdio.h>
int fwrite(void *add, size_t ta, size_t nbobjets, FILE *f);
Ecrit nbobjets de taille ta qui se trouvent à l'adresse add dans le fichier de descripteur f.
#include <stdio.h>
int fread(void *add, size_t ta, size_t nbobjets, FILE *f);
Lit nbobjets de taille ta dans le fichier de descripteur f et les place à partir de l'adresse add en mémoire.
Attention: La fonction fread retourne 0 si l'on essaye de lire
au delà du fichier. Pour écrire une boucle de lecture propre on utilise la fonction feof(FILE *):
int n[2];
while (fread(n, sizeof(int), 2, f), !feof(f))
printf("%d %d \n", n[0], n[1]);