Visto che ci sono chiedo anche un'altra cosa:

come faccio a copiare due byte dell'array di unsigned char in un int? Se non sbaglio facendo:

int a = (int) header[4];

mi copia solo il quarto byte, ignorando il quinto.

Grazie ancora! Ciao!