Schreiben in eine Datei in C

Jinku Hu 12 Oktober 2023
  1. Verwendung von die Funktion fwrite zum Schreiben in eine Datei in C
  2. Verwendung von die Funktion write zum Schreiben in eine Datei in C
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);
}
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Verwandter Artikel - C File