POSIX Open Function in c

POSIX Open Function in c
Obwohl es in C viele Bibliotheken gibt, ist die POSIX-Bibliothek unter den Entwicklern aufgrund ihrer breiten Palette der Systemaufruffunktionen, insbesondere der Systemfunktion, „Dateien“ vorgesehen, insbesondere bei „Dateien“. Die POSIX -Bibliothek für Linux -Betriebssystem bietet Ihnen eine Vielzahl von Funktionen. Es gibt eine Open () -Funktion, die absichtlich verwendet wird, um eine bestimmte Datei von einem System in einem dieser POSIX -Anrufe zu öffnen. Es werden viele Optionen verwendet, um viele Dinge auf den Linux -Dateien zu erstellen, zu öffnen, zu lesen, zu schreiben und zu tun.

Beispiel 1:
Schauen wir uns das erste Beispiel an, das die Funktion von Open () von POSIX verwendet, um die Dateien einfach in einem schreibgeschützten Modus zu erstellen und zu öffnen. Verwenden Sie dazu die Berührungsabfrage in Ihrer Shell, um eine C -Datei zu erstellen. Es kann in den aktuellen Arbeitsordner gespeichert werden.

Öffnen Sie Ihre neu generierte Datei, ich.e. offen.c, im Editor, um ein paar Code -Snippet dazu hinzuzufügen, genau wie im vorgestellten Bild. Starten Sie Ihren Code mit der Verwendung von C -Standard -Headern wie Stdio.H, fcntl.h und armo.H, die absichtlich für die Standardeingang/-ausgabe, die Verwendung der Einreichung bzw. die Fehler angezeigt werden. Es gibt eine Main () -Funktion, um die Ausführung auszuführen. Wir erstellen eine Ganzzahlvariable „F“, die als Dateideskriptor verwendet wird, um den zurückgegebenen Wert aus dem Funktion "Open ()" zu erhalten. Die Funktion open () verwendet den Text -Dateinamen zusammen mit zwei Optionen - die Option "o_rdonly" zum Lesen der bereits vorhanden.

Die Anweisung printf () zeigt den zurückgegebenen Wert mit dem Deskriptor „F“ an. Der Wert von „f“ entspricht „-1“. Es macht einen Fehler, den wir nicht mit einer Fehlermeldung über die Funktion perror () öffnen oder erstellt haben, oder erstellt keine Datei. Andernfalls zeigt die Anweisung printf () die Erfolgsnachricht auf unserem Bildschirm an. Der Code wird mit der Anweisung zurücksenden 0 abgeschlossen.

#enthalten
#enthalten
#enthalten
int main ()
int f = offen ("neu.txt ", o_rdonly | o_creat);
printf ("Dateideskriptorwert = %d \ n", f);
if (f == -1)
Perror ("Es wurde nicht erstellt, eine Datei zu erstellen/zu öffnen ... \ n);
anders
printf ("Datei erfolgreich erstellt!\N");
Rückkehr 0;

Nachdem der Code erfolgreich gespeichert wurde, kompilieren wir ihn mit dem Befehlszeilen-GCC-Tool wie dem C-Compiler, der im Linux-System verfügbar ist. Schreiben Sie das Schlüsselwort "GCC" mit dem Namen einer Datei "Öffnen".c ”und leiten Sie es. Die Zusammenstellung ist wohlhabend und wir versuchen die “./A.OUT ”-Anfrage, um den kompilierten Code auszuführen. Die Ausgabe zeigt den Wert von „F“ zusammen mit einer Erfolgsnachricht, die angibt, dass wir schließlich erfolgreich eine neue Textdatei erstellt haben. Die Anweisungsausgabe „LS“ zeigt den roten hervorragenden „neuen“.TXT ”-Datei, die von der Option" O_creat "von Open () im aktuellen Arbeitsordner erstellt wurde.

Verwenden wir denselben Code, um einen Fehler zu erhalten, wenn die Funktion open () selbst keine Datei lesen kann, die im System nicht vorhanden ist. Mit der gleichen Struktur des Code aktualisieren wir die erste Codezeile der Main () -Funktion. Hier entfernen wir die Option "o_creat", um eine neue Datei mit dem Funktionsaufruf von Open () zu erstellen und nur die Option "o_rdonly" zu verwenden.

Außerdem ändern wir den Namen einer Datei in „Test.txt ”, der in unserem Arbeitsordner nicht existiert. Dies bedeutet, dass die Funktion open () die Datei nicht öffnen kann, und die Funktion perror () zeigt die jeweilige Fehlermeldung an der Konsole an. Sparen wir diese aktualisierte C -Datei.

#enthalten
#enthalten
#enthalten
int main ()
int f = open ("Test.txt ", o_rdonly);
printf ("Dateideskriptorwert = %d \ n", f);
if (f == -1)
perror ("Fehler: [Es wurde nicht geöffnet, eine Datei zu öffnen]:);
anders
printf ("Datei erfolgreich geöffnet!\N");
Rückkehr 0;

Ausführen der Datei nach der Ausführung löscht den Fehler "Keine solche Datei oder Verzeichnis" aus.

Beispiel 2:
Sie können den Funktionsaufruf von Open () verwenden, um eine Zeichenfolge Daten aus einer bestimmten Datei mit den Arrays zu lesen. Dafür brauchen Sie nur die „Unistd.H ”und„ fcntl.H ”Bibliotheken. Die Codeausführung startet mit seiner primären „main ()“ -Methode, die ein Zeichen -Array „A“ von Größe 30 deklariert. Der Integer -Dateideskriptor verwendet den zurückgegebenen Wert aus dem Funktionsaufruf von open (). Die hier verwendete Open () -Funktion löst seine Option "o_rdonly" aus, um sie im schreibgeschützten Modus zu öffnen. Die Funktion read () in der nächsten Zeile wird verwendet, um insgesamt 12 Zeichen aus der Datei zu speichern.txt ”mit seinem Deskriptor„ F “und speichern Sie es auf das Charakter -Array„ A “.

Wenn die Funktion read () gelungen ist, Daten aus einer Datei zu lesen, gibt sie einen Wert auf die Variable „N“ zurück. Der Funktionsaufruf von write () verwendet die Variable „N“, um die Daten auf die Konsole zu schreiben, die gerade im Array „A“ gespeichert ist.

#enthalten
#enthalten
int main ()
Char A [30];
int f = open ("Datei.txt ", o_rdonly);
int n = read (f, a, 12);
schreiben (1, a, n);

Jetzt müssen wir die gleichnamige Textdatei "Datei" erstellen ".txt ”im selben Ordner und einige Textdaten hinzuzufügen, wie sie mit der Anweisung„ Cat “von Linux angezeigt werden. Wir kompilieren und führen unsere „Open aus.c ”Datei und erhalten Sie die ersten 12 Zeichen aus der Datei" Datei ".txt ”werden auf der Shell angezeigt.

Beispiel 3:
Sie können den Funktionsaufruf von Open () verwenden, um die Textdaten von einer Datei in eine andere mit einer leichten Änderung des Code zu kopieren. Wir geben den gleichen Beispiel -Code -Snippet ab und nehmen einige Änderungen an einigen seiner Zeilen vor. Die Größe des Zeichenpuffer "A" wird auf 50 aktualisiert und der F1 -Deskriptor öffnet die Datei "Datei" Datei ".txt ”in einem„ schreibgeschützten “Modus mit der Funktion„ o_rdonly “in einer Open () -Funktion. Die Funktion read () verwendet den Deskriptor „F1“, um 25 Zeichen aus der Datei zu lesen.txt ”-Datei und speichern Sie sie in Puffer Array" A ". Der zurückgegebene Erfolg/Misserfolg wird auf Variable „N“ gespeichert.

Ein anderer Dateideskriptor "F2" wird hier verwendet, um eine neue Datei mit dem Namen "Quelle" zu erstellen.txt ”im selben Ordner unter Verwendung der Option" 0_Creat "in einer" Öffnen "-Methode und mit einem" nur Schreibmodus "(o_wronly) mit dem zu schreiben von 0642 Wert. Der Funktionsaufruf von write () verwendet den Wert „N“, um die Daten aus dem Zeichenpuffer „A“ zu erhalten und ihn an die zweite Datei „Quelle“ zu analysieren.txt ”mit seinem Deskriptor„ F2 “. Führen Sie nun den folgenden Code aus, um zu sehen, was wir in der Ausgabe erhalten:

#enthalten
#enthalten
int main ()
char a [50];
int f1 = öffnen ("Datei.txt ", o_rdonly);
int n = read (f1, a, 25);
int f2 = offen ("Quelle.txt ", o_creat | o_wronly, 0642)
schreiben (f2, a, n);

Jetzt haben wir eine "Datei".txt ”und„ Öffnen.c ”Datei im aktuellen Ordner. Sie können die Daten in der Datei sehen.txt". Im Freien.C ”Dateiausführung, die Quelle.Die TXT -Datei wird generiert und die 25 Zeichen aus der "Datei".Die TXT -Datei wird in die Quelle kopiert.txt ”Datei auch.

Abschluss

Dieser Leitfaden ist einfach und doch C -Beispiele für C. Wenn Sie alle angegebenen Beispiele verwenden, werden Sie bei der Verwendung der Dateien in C nie versagen.