Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2.3.UWAGINAKONIEC
KońcówkapętliwyglądadośćprostohuaktualnijMD5”{TR};danepobierzzbufora
wilościodczytanejzpliku.
fclose(f);
MD5-Final(result,&md5);
return0;
}
Podobniejestwprzypadkukońcowegofragmentukodufunkcjihzamknijplik”{TR,A},
orazprawdopodobniehzapisz/przekażfinalnywynikMD5doresult”,poczymopuść
funkcję,zwracając0.
Podsumowując:funkcjaliczysumęMD5pliku.Wtymceluotwieraplik,inicjujeobiekt
kontekstuMD5,poczymuaktualniawartośćskrótuoodczytywanedane.Nakonieczamy-
kaotwarteuchwytyiprzekazujedotychczasowowyliczonąsumęMD5dotablicyresult.
Całkiemnieźle,jaknaanalizękoduwnieznanymjęzyku.
2.3.Uwaginakoniec
Przytoczonąanalizęprzeprowadziłem,idącodpoczątkufunkcjiwkierunkujejkońca,po
jednejlubkilkaliniinaraz;zachęcamczytelnikówdowykonaniakilkupierwszychanaliz
właśniewtensposób.Wpraktycejednakanalizęczęstowykonujesięinaczej:ignorując
większośćkodu,szukamyfragmentów,którenasinteresująiktórychprzeczytanieniesie
zesobąstosunkowodużąporcjęinformacji,anastępnieewentualniecofamysięiwyko-
nujemydodatkowąanalizę,uzupełniającbrakującąwiedzę(np.sprawdzająctypzmiennej,
sposóbjejinicjalizacjiczyto,jakwcześniejbyłaużywana).Bardzowieleofunkcjimówijuż
to,jakieinnefunkcjeimetodyprzezniąwywoływane(zachęcamdospojrzeniapodtym
kątemnakod,którywcześniejanalizowaliśmy).Zdrugiejstrony,analizęniektórychfrag-
mentówmożemypominąć,ponieważrzadkokiedyprzynosząinteresującenasinformacje
przykłademmożebyćobsługabłędów(zpominięciemkomunikatówtekstowychwnich
zawartych),którączęstomożnazupełnieprzeskoczyć,takjakzrobiłemtowopisanym
przykładzie.Ostatecznieprzebieganalizyzależywznacznymstopniuodjejceluwtym
rozdzialeprzyjąłemzałożenie,żepodstawowymcelemjestzrozumieniesposobudziałania
głównegoalgorytmu,ewentualnieprześledzenieceluiprzeznaczeniaparametrówfunk-
cji.Jeślinaszymzadaniemjestjednakznalezieniebłęduwfunkcji,toanalizamożepójść
innymtorem,aprzykładowefragmentykoduodpowiedzialnezaweryfikowaniepopraw-
nościzwracanychwartościiobsługiwaniebłędówbędąwręczkluczowe.
Wpozostałychrozdziałachksiążkiumieściłemwielelistingówniektóreznich
wznacznymstopniuwyjaśnione,alewczęściprzypadkówprzyjąłemzałożenie,czytelnik
wykonaichanalizęwewłasnymzakresie,naprzykładkorzystajączwiedzyzdobytejwtym
rozdziale.
53