Extras din seminar
Linia de comanda: crc <nume_fis> <comanda>
La comanda "c" se apeleaza functia adauga_inf_CRC care primeste numele fisierului sursa si creeaza un nou fisier cu extensia .crc care contine pentru fiecare bloc de 1024 octeti informatia crc de 16biti corespunzatoare.
Citirea datelor din fisier se face intr-un buffer (bloc) cu dimensiunea de 1024 octeti. Calculul secventei de control CRC este realizat de functia calculeaza_crc. Aceasta primeste ca parametri blocul (1024 octeti) pentru care se calculeaza, dimensiunea blocului, tabelul codurilor CRC pentru un anumit polinom generator si un pointer la acumulatorul in care se va retine rezultatul.
Pentru fiecare octet al blocului de date functia calculeaza restul partial, pe baza tabelului CRC si a restului anterior(acumulator).
Pentru detectie (comanda "d") se apeleaza functia detecteaza eroare, care primeste ca parametru numele fisierului pentru care se face verificarea. Cum se face verificarea ? Se citesc din fisier blocuri de lungime DIM_BLOC + DIM_CRC (2 octeti), adica 1026 octeti si se verifica daca prin impartirea la polinomul generator restul este 0.
Daca nu, inseamna ca a aparut o eroare in blocul respectiv.
Conținut arhivă zip
- crc
- crc.c
- eroritor.c
- fisieritor.c
- ham
- 100k.err
- 100k.ham
- 10k.err
- 10k.ham
- 25k.err
- 25k.ham
- 50k.err
- 50k.ham
- eroritor.c
- eroritor.exe
- fisieritor.c
- fisieritor.exe
- readme.txt
- readme.txt.bak
- rezultate.txt