Uhu Uhuhu schrieb:
> Es ist ein einfacher Zufallsgenerator mit fest eingestelltem Startwert,
Der Code ist leider nicht ganz "sauber".
Das hier:
!strcmp(argv[1],...
kann einen Core-Dump erzeugen, da Du gar nicht prüfst, ob argc überhaupt
gleich 2 ist. Wenn Du also das Programm versehentlich ohne Argument
aufrufst, greift strcmp irgendwo ins Leere...
Die Meldung
printf("read error @ block 0x%lx\n", lasterr);
ist irreführend. Wenn sie auftritt, dann sind lediglich die Daten
verschieden. Aber es liegt kein Read-Error (im Sinne von Lesefehler auf
Betriebssystem-Ebene) vor. Den hättest Du nämlich nach dem
read-System-Call prüfen müssen... was Du leider vergessen hast ;-)
Verständlicher wäre daher:
printf("data differs @ block 0x%lx\n", lasterr);
Ausserdem ist der Code nicht Endian-fest: Auf Maschine X (i386) die
Platte vollschreiben, dann Platte auf andere Maschine Y (Power PC)
umhängen kann evtl. beim Test in die Hose gehen.