PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : c++ -> cksum ohne system()



hayloft_ch
13-01-2004, 17:34
ich brauche eine checksumme über meine files, um sicherzugehen, dass keine doppelt vorhanden sind. Soweit ich das verstanden habe, kann man dafür checksummen verwenden, auch wenn die file-namen sich unterscheiden würden...

soweit ich das ganze weiterhin verstanden hab, gibt es klartext-checksummen (mit cksum) und verschlüsselte md5 oder was auch immer (bsp. md5sum). Da das ganze über sehr grosse und einer grossen files läuft, scheint die md5-checksumme extrem viel ressourcen zu verschwenden, deshalb entschied ich mich dafür die klartextsummen zu verwenden (zu md5 hab ich nämlich einiges gefunden).

da das ganze wenn möglich plattformunabhängig sein sollte, kann ich keinen system()-aufruf verwenden..

kann mir eventuell jemand helfen??
danke im voraus für jegliche hilfe...

brotzi
13-01-2004, 18:48
schau mal bei "man execvp". Das sollte es auch auf anderen Plattformen geben. Ausserdem ist dann "man fork" noch interessant.

peschmae
13-01-2004, 20:39
gemäss man cksum verwendet cksum crc als hash-algorithmus. Und davon gibts auf dem Netz jede Menge implementierungen.

z.B. das da: http://members.cox.net/tonedef71/body_jcrcgen.htm

Was an crc bzw. cksum Klartext sein soll weiss ich nicht - vielleicht kannst du das erläutern - abgesehen davon dass man CRC für Verschlüsselung (z.B. von Passwörtern) nicht mehr benutzt, weil er unsicher ist.

Grosse Unterschiede in Ressourcenverbrauch/Dauer zwischen md5sum, sha1sum und cksum habe ich nicht festellen können.

Um das Programm ein bisschen zu beschleunigen würde ich zuerst mal die Dateigrössen vergleichen und Dateien, deren Grösse nur einmal vorkommt gar nicht erst mit Checksummen behandeln.

MfG Peschmä

f0rtex
14-01-2004, 19:51
evtl. kann dir http://www.boost.org/libs/crc/ behilflich sein.

greets
f0rtex