Wie zuverlässig sind fgetc, fputc und gcc kompilieren?

380
levitopher

Mich interessiert, wie getreu sich ein Programm wie das folgende reproduzieren würde:

fgetc (Quelldatei) zum Lesen der Quelldatei.

fputc (Tochterdatei), um eine neue Quelldatei zu schreiben.

gcc, um die Tochterdatei zu kompilieren.

Ich kann diff / cmp auf den beiden Dateien ausführen (Original und Tochter) und erhalte gemischte Ergebnisse. Diff sagt, dass sie genau gleich sind, cmp gibt eine sehr lange Liste ihrer Unterschiede an, aber ich denke, das liegt möglicherweise daran, dass die Namen unterschiedlich sind und die Namen in die ausführbare Datei kompiliert werden.

Natürlich sollten diese Programme bei vielen, vielen Wiederholungen genau gleich sein, aber ich frage mich, ob mich jemand zu einer Diskussion verweisen kann, die mir eine Vorstellung davon vermitteln könnte, wie oft ein Verfahren wie das oben beschriebene zu einer Beschädigung der Daten führen würde.

(Und zu Ihrer Information, falls es darauf ankommt, bin ich an allen Änderungen interessiert, auch an denjenigen, die die Ausführung des Codes nicht direkt beeinträchtigen. Grundsätzlich Änderungen an der Datei, die ich nicht beabsichtigt habe.)

0
* "Diff sagt, dass sie exakt gleich sind, cmp gibt eine sehr lange Liste ihrer Unterschiede an" * - Was genau sind diese Ergebnisse (und veröffentlichen die ursprüngliche Programmdatei)? * "Geben Sie mir eine Vorstellung davon, wie oft eine Prozedur wie die oben beschriebene zu einer Datenbeschädigung führen würde" * - Nur wenn das Kopierprogramm einen Fehler hat. sawdust vor 6 Jahren 1
Eine Antwort erhalten Sie unter https://stackoverflow.com/questions/16479006/can-i-use-fgetc-or-fputc-in-a-binary-file sawdust vor 6 Jahren 2
^^ Also die Antwort ist "fgetc () und fputc () sind 100% ig genau, die ganze Zeit"? Ich denke, ich interessiere mich eher für "in der Praxis" als für "theoretisch", aber es wären noch viel mehr Informationen über die Umgebung erforderlich, um "in der Praxis" zu bewerten. levitopher vor 6 Jahren 0
* "... aber es werden noch viel mehr Informationen benötigt ..." * - Ja, wie Ihr "Programm". sawdust vor 6 Jahren 0

0 Antworten auf die Frage