/* * *** Listing 1-4 *** * * Programme pour calculer la somme (checksum)sur 16 bits d'un flux d'octets * depuis le fichier spécifié. Récupère les octets un par un via * getc(),permettant au C de tamponner les données. */ #include main(int argc, char *argv[]) { FILE *CheckFile; int Byte; unsigned int Checksum; if ( argc != 2 ) { printf("syntaxe: nom_du_fichier\n"); exit(1); } if ( (CheckFile = fopen(argv[1], "rb")) == NULL ) { printf("ne peut pas ouvrir le fichier: %s\n", argv[1]); exit(1); } /* Initialise l'accumulateur checksum */ Checksum = 0; /* Additionne chaque octet dans l'accumulateur checksum */ while ( (Byte = getc(CheckFile)) != EOF ) { Checksum += (unsigned int) Byte; } /* Reporte le résultat */ printf("La somme est: %u\n", Checksum); exit(0); }