Ich schreibe ein ziemlich einfaches Programm für den persönlichen Gebrauch, aber ich möchte wirklich sicherstellen, dass ich gute Praktiken benutze, besonders wenn ich mich entscheide, es später robuster zu machen oder so.Welche Best Practices gelten für Datei-E/A in C?
Für alle Absichten akzeptiert das Programm einige Eingabedateien als Argumente, öffnet sie mit gelesen aus den Dateien, stopft mit dieser Information, und speichert dann die Ausgabe als ein paar verschiedene Dateien in einem Unterordner. zB wenn das Programm in ~/program
ist dann die Ausgabedateien gespeichert wird in ~/program/csv/
ich nur Ausgang direkt auf die Dateien, zum Beispiel output = fopen("./csv/output.csv", "w");
, mit fprintf(output,"%f,%f", data1, data2);
in einer Schleife, um es zu drucken, und schließen Sie dann mit fclose(output);
und ich fühle mich einfach Das ist eine schlechte Übung.
Soll ich es in einem temporären Verzeichnis speichern, in das es geschrieben wird, und es dann verschieben, wenn es fertig ist? Sollte ich erweiterte Datei-E/A-Bibliotheken verwenden? Übertreibe ich das nur völlig?
Für etwas so einfach, denke ich, dass Sie es überdenken. Wenn Sie der einzige Prozess (oder Thread) sind, der in die Datei (en) schreibt, ist keine zusätzliche Arbeit erforderlich. –
Willkommen bei Stack Overflow. Bitte lies die [FAQ] zu lange. Dies könnte eine Frage ohne genaue Antwort sein. In den meisten Fällen ist es gut, was du machst. Ein temporäres Verzeichnis ist wahrscheinlich übertrieben. Sie können überprüfen, ob 'fclose()' funktioniert; Wenn nicht, müssen Sie davon ausgehen, dass die Datei nicht korrekt erstellt wurde und sie wahrscheinlich entfernen sollte. Vielleicht möchten Sie jede Ausgabeoperation überprüfen; das ist der theoretisch korrekte Weg. Offensichtlich müssen Sie 'fopen()' überprüfen, da Sie abstürzen, wenn Sie nicht abstürzen. –