Der Unterschied in der File access Modus "w" und "WA -
Was ist der Unterschied zwischen diesen code-Blöcke. Ich habe versucht, zu suchen für die "wb" aber nicht sehen es überall. Die Datei mit "wb" ist aus meiner Tutoren
FILE *f = fopen(DB_FILE_NAME, "wb");
if (f == NULL) {
printf("Write error\n");
} else {
/* write n_students elements of the studentlist array */
fwrite(studentlist, sizeof(student_t), n_students, f);
fclose(f);
}
und
FILE *f = fopen(DB_FILE_NAME, "w");
if (f == NULL) {
printf("Write error\n");
} else {
/* write n_students elements of the studentlist array */
fwrite(studentlist, sizeof(student_t), n_students, f);
fclose(f);
}
InformationsquelleAutor Anh Minh Tran | 2017-05-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Absolut alle Verweis auf die
fopen()
funktionieren würde, haben Sie gesagt. Zum Beispiel die Handbuch Seite was die Allgemeine Dokumentation verwendet in Unix-artigen Umgebungen:So, es steht für binary und ist nützlich, um anzuzeigen, dass Sie beabsichtigen, zu behandeln den Inhalt der Datei als text.
Für Ihren code, Binär-Zugang scheint Recht. Allerdings direkt raw
struct
Werte ist im Allgemeinen eine sehr schlechte Idee, da Sie nicht wissen, die genaue interne format durch den compiler und es können unerwartet ändern. Für Dateien, die freigegeben werden sollen und/oder Zugriff auf "später", das ist auch nicht der richtige Weg, es zu tun in C. Blick in die Serialisierung.securecoding.cert.org/confluence/display/c/...
Die
f
ist einfach der name der Variablen, undFILE *
("Zeiger aufFILE
") ist der Variablen-Typ. Dies ist die grundlegende C-syntax, und wenn, fühlt sich ungewohnt, die Sie wirklich brauchen, um zu lernen die Sprache mehr.Ich bin nicht einverstanden mit diesem Kommentar. Ich habe SEHR unterschiedliches Verhalten beim öffnen mit "w" vs. "wb". In meinem Fall, ich Schreibe floating point Werte direkt in eine Datei.
InformationsquelleAutor unwind
Angabe
"b"
im access-Modus verhindert, dass (einige Implementierungen) der standard-Bibliothek von der übersetzung ein paar Zeichen beim Lesen/schreiben der Datei.Häufigste übersetzung für end-of-line:
\n
übersetzt\r\n
im Windows.InformationsquelleAutor pmg
In fopen Dokumentation :
InformationsquelleAutor Badda