Schreiben in eine Datei in C
-
Verwendung von die Funktion
fwrite
zum Schreiben in eine Datei in C -
Verwendung von die Funktion
write
zum Schreiben in eine Datei in C
Dieser Artikel demonstriert mehrere Methoden, wie man in C in eine Datei schreiben kann.
Verwendung von die Funktion fwrite
zum Schreiben in eine Datei in C
Die Standard-E/A-Bibliothek in C bietet Kernfunktionen zum Lesen/Schreiben von Dateien, nämlich fread
und fwrite
. fwrite
nimmt vier Argumente entgegen, einen void
-Zeiger, aus dem die Daten bezogen werden sollen, Größe und Anzahl der Datenelemente am angegebenen Zeiger und einen FILE*
-Zeiger für den Ausgabedateistrom.
Beachten Sie, dass der Dateistrom zuerst mit der Funktion fopen
geöffnet werden sollte, die den Dateinamen mit dem gewünschten Modus annimmt und FILE*
zurückgibt. In diesem Fall verwenden wir den Modus w+
, um die Datei zum Lesen und Schreiben zu öffnen. Beachten Sie jedoch, dass, wenn die Datei nicht existiert, eine neue mit dem angegebenen Namen angelegt wird. Als nächstes prüfen wir, ob der zurückgegebene Dateistromzeiger gültig ist. Wenn nicht, wird die entsprechende Fehlermeldung ausgegeben und das Programm beendet. Sobald der Dateistromzeiger verifiziert ist, kann die Funktion fwrite
aufgerufen werden. Denken Sie daran, dass Sie die Datei mit der Funktion fclose
schließen sollten, bevor das Programm beendet wird.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char* str = "Temporary string to be written to file!";
int main(void) {
const char* filename = "out.txt";
FILE* output_file = fopen(filename, "w+");
if (!output_file) {
perror("fopen");
exit(EXIT_FAILURE);
}
fwrite(str, 1, strlen(str), output_file);
printf("Done Writing!\n");
fclose(output_file);
exit(EXIT_SUCCESS);
}
Verwendung von die Funktion write
zum Schreiben in eine Datei in C
Alternativ können wir write
verwenden, das ein POSIX-konformer Funktionsaufruf ist, der die angegebene Anzahl von Bytes in die Datei schreibt, auf die der Dateideskriptor verweist. Beachten Sie, dass ein Dateideskriptor eine ganzzahlige Nummer ist, die mit den geöffneten Dateistreams verbunden ist. Um den Deskriptor abzurufen, sollten wir die Funktion open
mit dem Pfad zum Dateinamen aufrufen. Die Funktion write
nimmt den Dateideskriptor als erstes Argument und den Puffer der Daten, auf den das void*
zeigt, als zweites. Das dritte Argument ist die Anzahl der in die Datei zu schreibenden Bytes, die im folgenden Beispiel mit der Funktion strlen
berechnet wird.
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
const char* str = "Temporary string to be written to file!";
int main(void) {
const char* filename = "out.txt";
int fd = open(filename, O_WRONLY);
if (fd == -1) {
perror("open");
exit(EXIT_FAILURE);
}
write(fd, str, strlen(str));
printf("Done Writing!\n");
close(fd);
exit(EXIT_SUCCESS);
}
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook