Offene Funktion in der C -Sprache

Offene Funktion in der C -Sprache

Die Kenntnisse der Funktionen offen, lesen und schreiben sind unerlässlich, da wir sie immer benötigen, um die Informationen zu speichern oder zu entsorgen, die in Dateien gespeichert sind. Die C -Sprache verfügt über zwei grundlegende Funktionen, mit denen Sie die Dateien mithilfe der Funktionen Open () und fopen () mit jeweils unterschiedlichen Aufrufmethoden öffnen können.

In diesem Linux -Hinweis -Artikel lernen Sie, wie Sie die Funktion open () verwenden. Wir werden alles über diese Funktion, ihre Syntax, den Methodenaufruf, die Eingabe- und Ausgabeargumente, die Art der Daten, die sie in jedem Fall akzeptieren.

Anschließend werden wir das anwenden, was wir gelernt haben, indem wir die Verwendung dieser Funktion in praktischen Beispielen implementieren, die wir für Sie mit Code -Snippets und Bildern vorbereitet haben, die die Verwendung der Open () -Funktion in der C -Sprache zeigen.

Damit Sie ein umfassendes Wissen haben können, fügen wir einen speziellen Abschnitt hinzu, der alle Fehler beschreibt, die bei der Verwendung dieser Funktion auftreten können, sowie deren Erkennung und Identifizierung, sodass Sie die erforderlichen Techniken für a Schnelle Lösung.

Syntax der Open () -Funktion in C -Sprache

int offen (const char *pathname, int flags);

Beschreibung der Open () -Funktion in C -Sprache

Die Funktion open () öffnet eine Datei zum Lesen oder Schreiben. Diese Funktion öffnet die Datei, die im PathName -Eingabeargument angegeben ist. Diese Eingabe muss den absoluten oder relativen Pfad und den Namen der Datei im String -Format oder einen Zeiger darauf angeben.

Das Flags -Eingabeargument gibt die Attribute an, die die Datei haben muss. Das Folgende ist eine Liste der Flags, die dieses Eingabeargument akzeptiert, und eine kurze Beschreibung des Attributs, das jedes einzeln festlegt:

Flagge Beschreibung
O_rdonly Öffnen Sie die Datei nur zum Lesen.
O_wronly Öffnen Sie die Datei nur zum Schreiben.
O_RDWR Öffnen Sie die Datei zum Lesen und Schreiben.
O_creat Erstellt eine Datei im Pfad und in dem in angegebenen Namen in Pfadname Streit.
O_ anhängen Öffnet die Datei und platziert den Cursor am Ende des Inhalts.
O_async Aktivieren Sie die Eingangs- und Ausgangskontrolle durch Signal.
O_cloexec Aktivieren.
O_nonblock Deaktiviert die Blockierung der geöffneten Datei.
O_tmpfile Erstellen Sie eine unbenannte temporäre Datei am angegebenen Pfad.

In Fällen, in denen mehr als ein Flag verwendet wird, muss eine logische „oder“ Operation zwischen ihnen durchgeführt werden. Dies kann innerhalb der Eingabeargumentationsflags in derselben Codezeile wie der Funktionsaufruf erfolgen.

Die Attribute und Modi können geändert oder konsultiert werden, sobald die Datei mit der Funktion fcntl () geöffnet ist.

Die Funktion open () gibt eine Ganzzahl zurück, die den Deskriptor der geöffneten Datei enthält. Dieser Deskriptor wird als Eingabeargument für Dateiverarbeitungsfunktionen wie Read (), Write () usw. verwendet., Um sich auf die Datei zu beziehen.

Diese Funktion ist in der „Unistd.H ”Kopfball. Die Flags, die die Attribute und den Modus zum Öffnen der Datei definieren, sind in „FCNTL.H". Um die Funktion open () zu verwenden, müssen Sie diese Header wie folgt in Ihren Code aufnehmen:

#enthalten
#enthalten

So öffnen Sie eine Datei mithilfe der Funktion open () in der C -Sprache

In diesem Beispiel werden wir die Funktion open () verwenden, um eine Datei im Lese- und Schreibmodus zu öffnen. In diesem Fall handelt es sich um eine zuvor erstellte Datei namens namens "Beispiel.txt" welches in gespeichert ist "Unterlagen".

Schritt 1: Der erste Schritt besteht darin.

Schritt 2: Der nächste Schritt besteht. Als Ausgabeargument deklarieren wir die Ganzzahl „FD“, die der Dateideskriptor ist. Als Eingabeargument deklarieren wir das Puffer -Zeichen -Array, das die Zeichenfolge mit dem Pfad und dem Namen der zu öffnenden Datei enthält.

Wir deklarieren auch eine Reihe von 512 Zeichen, die als „Text“ bezeichnet werden, in dem wir den Text speichern, den wir in die Datei schreiben möchten, die in diesem Fall der erste Absatz dieses Artikels ist.

Schritt 3: Sobald die Variablen deklariert sind, nennen wir die Funktion open () und bestehen die Ganzzahl „FD“ als Ausgabemargument, den String -Pfad als erstes Eingabebereich und das O_Wronly -Flag als zweites Argument.

Schritt 4: Wenn Open () aus dem Anruf zurückkehrt, gibt es den Deskriptor der Datei zurück, der in "FD" geöffnet ist. Dann schreiben wir mit der Funktion write () und übergeben den Deskriptor „FD“ als erstes Eingabemargument, den String -Text als zweites Eingabebereich und schließlich die Größe des Textes, der mit der Funktion strlen () erhalten wird. Nach dem Schreibvorgang schließen wir die Datei mit der Funktion close ().

Hier ist der vollständige Code für dieses Beispiel:

//Schritt 1
#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
void main ()

//Schritt 2
intfd;
Zeichenpuffer [] = "Dokumente/Beispiel.txt";
Chartext [512] = "Kenntnisse der verschiedenen offenen Funktionen, Lesen und Schreiben ist unerlässlich, da wir sie immer benötigen, um Informationen zu speichern oder zu entsorgen, die in Dateien gespeichert sind.
Die C -Sprache verfügt über zwei grundlegende Funktionen, mit denen Sie Dateien öffnen können, öffnen () und fopen () mit jeweils unterschiedlichen Aufrufmethoden.";
//Schritt 3
fd = open (puffer, o_wronly);
//Schritt 4
write (fd & text, strlen (text));
schließen (fd);

Die folgende Abbildung zeigt die Kompilierung und Ausführung dieses Code zusammen mit der Datei, die wir gerade geschrieben haben. Wie wir sehen können, öffnet die Funktion open () die Datei korrekt. Wir verwenden dann die Funktion write (), um den Inhalt des Textes zu schreiben. In diesem Fall enthält es den ersten Absatz dieses Artikels:


Fehler, die bei der Verwendung der Funktion open () auftreten können: So erkennt und identifizieren Sie sie

Die Verwendung der Funktion open () kann zu verschiedenen Fehlern führen. Wenn dies der Fall ist, gibt es ein Ergebnis zurück, das gleich -1 entspricht.

Der einfachste Weg, um festzustellen, ob ein Fehler aufgetreten ist, besteht darin, eine „wenn“ -Sbund zu verwenden, bei der der Zustand der Wert -1 -Wert ist, der in „FD“ zurückgegeben wird. Lassen Sie uns nun sehen, wie Sie diese Methode verwenden können, um festzustellen, ob ein Fehler aufgetreten ist:

fd = open ("Pfad/Dateiname", Flags);
if (fd ==-1)
printf ("Es ist ein Fehler beim Versuch, die Datei zu öffnen.");

Wenn die Funktion open () mit einem Fehler zurückgibt, geht sie an die Anweisung „If“ und druckt die Nachricht aus, „Beim Versuch, die Datei zu öffnen, ist ein Fehler aufgetreten“.

Wenn Open () ein Ergebnis zurückgibt, das gleich -1 entspricht.H ”Kopfball. Dieser numerische Code kann verwendet werden, um den aufgetretenen Fehler zu identifizieren.

Das Folgende ist ein Auszug der Fehler, die die Funktion open () erzeugen kann, zusammen mit einer kurzen Beschreibung jedes Fehlers und des zugehörigen Ganzzahlwerts:

Definition Wert in errno Fehler
Eperm 1 Operation unzulässig
Enoent 2 Keine solche Datei oder Verzeichnis
Eintr 4 Unterbrochener Systemaufruf
Enxio 6 Kein solches Gerät oder eine solche Adresse
Enomem 12 Aus dem Gedächtnis
Leacces 13 Zugriff verweigert
Efault 14 Schlechte Adresse
EBusy 16 Gerät oder Ressource beschäftigt
Existieren 17 Datei existiert
Enodev 19 Kein solches Gerät
Enotdir 20 Kein Verzeichnis
Eisdir 21 Ist ein Verzeichnis
Einval 22 Ungültiges Argument
E-DATEI 23 Dateitabellenüberlauf
Emfile 24 Zu viele offene Dateien
Etxtbsy 26 Textdatei beschäftigt
Enospc 28 Kein Speicherplatz auf Gerät
Erofs 30 Nur-Lese-Dateisystem
Enametoolong 36 Dateiname zu lang
Eloop 40 Zu viele symbolische Links begegnen
Eoverflow 75 Wert zu groß für den definierten Datentyp
Edquot 122 Quote überschritten

Der einfachste Weg, um einen Fehler zu identifizieren, besteht darin.

Betrachten Sie als nächstes ein Beispiel, in dem wir eine Datei öffnen, die nicht existiert, was zu einem Fehler führt. Um einen Fehler zu erkennen, verwenden wir die „if“ -Sbemessung, die wir im vorherigen Snippet gesehen haben. Um dies zu identifizieren, öffnen wir einen Schalter mit den drei häufigsten Fehlern, die diese Funktion erzeugen kann:

#enthalten
#enthalten
#enthalten
#enthalten
void main ()

intfd;
Zeichenpuffer [1024];
fd = open ("Dokumente/Nein existieren.txt ", o_append | o_rdwr);
if (fd ==-1)
Switch (errno)
case eperm:
printf ("Operation nicht zulässig. Fehler: %i \ n ", errno);
brechen;
Fall Enoent:
printf ("Keine solche Datei/Verzeichnis. Fehler:%i \ n ", errno);
brechen;
case enotdir:
printf ("kein Verzeichnis. Fehler: %i \ n ", errno);
brechen;


Das folgende Bild zeigt die Kompilierung und Ausführung dieses Code. Darin sehen wir, wie der generierte Fehler in der Bedingung „If“ erkannt wird und wie die Fehler im Switch bedingt identifiziert werden, um die Nachricht und den spezifischen Wert anzuzeigen:

Abschluss

In diesem Linux -Hinweis -Artikel haben wir erläutert, wie die Funktion open () zum Öffnen der Dateien verwendet wird.

Wir haben Ihnen die Syntax dieser Funktion und die theoretische Beschreibung des Funktionierens, die Aufrufmethode, die Eingabebereich und den Datentyp, der jeweils verwendet wird, gezeigt.

Anschließend haben wir die Verwendung der Funktion open () in einem praktischen Beispiel mit Code -Snippets und Bildern implementiert. Wir haben Ihnen gezeigt, wie Sie die erforderlichen Variablen deklarieren, diese Funktion aufrufen, um eine Datei zu öffnen und darauf zu schreiben.

Wir haben auch einen Abschnitt hinzugefügt, in dem wir alle Fehler auflisten, die diese Funktion generieren kann. Wir haben Ihnen die Techniken gezeigt, um sie zu erkennen und zu klassifizieren, damit Sie die notwendigen Mittel haben, um sie schnell zu beheben, wenn sie auftreten.