Funktion in der C -Sprache lesen

Funktion in der C -Sprache lesen

Die C -Sprache hat zwei grundlegende Funktionen, mit denen Sie die Dateien mit den Funktionen Read () und Fread () lesen können. Es verfügt auch über Methoden mit Funktionen, um die Dateien Zeichen für Zeichen zu lesen.

Es ist wichtig, die Dateiverarbeitungsfunktionen, ihre Anrufmethoden, Eingabe- und Ausgabeargumente usw. zu kennen., Um sie fließend zu verwenden, da sie die Ressource sind, die dem Programmierer zur Speicherung der Informationen zur Speicherung und Entsorgung der im System gespeicherten Informationen zur Verfügung steht.

In diesem Linux -Hinweis -Artikel erfahren Sie, wie Sie die Funktion read () zum Lesen der Dateien verwenden.

Wir werden alles über „Ella“, seine Syntax, den Methodenaufruf, die Eingabe- und Ausgabeargumente, die Art der Daten erklären, die sie jeweils akzeptieren, und wie sie ordnungsgemäß deklarieren können.

Wir wenden dann das an, was wir gelernt haben, indem wir die Verwendung dieser Funktion in praktische Beispiele investiert haben.

Damit Sie sich voll und ganz bewusst sind, wie Sie die Funktion read () verwenden, haben wir einen speziellen Abschnitt hinzugefügt, der alle Fehler beschreibt, die bei der Verwendung dieser Funktion auftreten können, sowie deren Erkennung und Identifizierung, damit Sie die erforderlichen Techniken für eine schnelle Lösung bei einem Fehler.

Syntax der Funktion read () in der C -Sprache

size_t read (int fd, void *buf, size_t count);

Beschreibung der Funktion read () in der C -Sprache

Die Funktion read () liest den Inhalt der geöffneten Datei, die von ihrem Deskriptor im Eingabeargument „FD“ angegeben ist. Diese Funktion liest und kopiert die Anzahl der Bytes in den Puffer, auf den BUF hingewiesen wird. Die Identifikatorin „FD“ ist eine Ganzzahl, die als Ergebnis der Funktion open () beim Öffnen der Datei zurückgegeben wird.

Wenn die Funktion read () erfolgreich zurückgibt, gibt sie die Anzahl der Lesebytes zurück. Ein Ergebnis, das gleich 0 entspricht, bedeutet, dass die Datei bis zum Ende gelesen wird, und -1 bedeutet, dass ein Fehler auftritt. Der spezifische Fehler kann identifiziert werden, indem sein Code aus der globalen Errno -Variablen abgerufen wird. Später finden Sie einen Abschnitt, der die Fehler beschreibt, die bei der Verwendung der Funktion read () und die Techniken zum Erkennen und Identifizieren.

Die Funktion read () wird in der „Unistd.H ”Kopfball. Um es zu verwenden, müssen Sie diese Datei wie folgt in Ihren Code aufnehmen:

#enthalten

So lesen Sie eine Datei mit der Funktion read () in C -Sprache

In diesem Beispiel werden wir erklären, wie Sie eine Datei mit den Funktionen von Open () und Read () öffnen und lesen können.

Zu diesem Zweck haben wir zuvor eine Textdatei mit dem Namen „Beispiel“ erstellt.txt ”über den Linux -Manager und speichert es im Verzeichnis„ Dokumente “. Wir haben den ersten Absatz dieses Artikels darin geschrieben.

Der erste Schritt bei der Entwicklung des Codes zum Lesen der Datei besteht darin, die erforderlichen Headers einzuschließen und eine Main () -Funktion zu erstellen, die einen leeren Wert zurückgibt. Wir definieren die Integer „FD“, die als Dateideskriptor dient, ein 1024 -Zeichenpuffer namens „Buff“, bei dem die Informationen, die von der Funktion read () gelesen werden, gespeichert werden. Der Array -Pfad speichert den Pfad und den Namen der Datei, die wir lesen möchten.

Nachdem wir die erforderlichen Variablen definiert haben, rufen wir die Funktion open () auf, um die Datei zu öffnen. Wir nennen diese Funktion, indem wir das Pfad -Array mit dem Pfad und dem Namen der Datei als erstes Eingabebericht übergeben und das o_rdonly -Flag als zweites Argument angeben. Wir übergeben die Ganzzahl „FD“ als Ausgabeargument, bei dem Open () den Deskriptor zurückgibt, mit dem wir die Datei lesen können.

Sobald wir die Datei geöffnet haben, haben wir ihren Inhalt gelesen, indem wir die Funktion read () aufrufen und den Deskriptor „FD“ übergeben, der von der Funktion open () als erstes Argument zurückgegeben wird. Wir übergeben den Zeiger als das zweite Argument an den „Buff“. Schließlich passieren wir die Größe des Puffers, der in diesem Fall 1024 Bytes beträgt. Wir verwenden dann die Funktion printf (), um den Inhalt anzuzeigen, der in der Befehlskonsole in „Buff“ gespeichert ist.

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

#enthalten
#enthalten
#enthalten
#enthalten
int main ()

intfd;
Char Buff [1024];
char path [] = "Dokumente/Beispiel.txt";
fd = open (Pfad, o_rdonly);
Read (FD, Buff, 1024);
printf ("\ n \ n%s \ n \ n", Buff);

In der folgenden Abbildung sehen wir die Zusammenstellung und Ausführung dieses Code. Wie wir sehen können, legt Read () den gesamten Inhalt des Beispiels ein.TXT ”-Datei in" Buff "und die Funktion printf () druckt sie in die Befehlskonsole:

So erfassen und identifizieren Sie die Fehler, die auftreten können, wenn die Funktion read () in der C -Sprache verwendet wird

Mit Read () können verschiedene Fehler generiert werden. In diesem Fall gibt diese Funktion ein Ergebnis zurück, das -1 entspricht.

Der einfachste Weg, um festzustellen, ob ein Fehler aufgetreten ist. Lassen Sie uns nun sehen, wie Sie diese Methode verwenden können, um festzustellen, ob ein Fehler aufgetreten ist:

int n;
n = read (fd, Buff, 1024);
if (n == -1)
printf ("Ein Fehler ist beim Versuch aufgetreten, die Datei zu lesen.");

Wenn die Funktion read () mit einem Fehler zurückgibt, wechselt sie zur Anweisung „If“ und druckt die Nachricht, „ein Fehler ist beim Versuch, die Datei zu lesen“ aufgetreten ist.

Wenn ein Fehler eintritt.H ”Kopfball. Dieser Code kann verwendet werden, um den aufgetretenen Fehler zu identifizieren.

Das Folgende ist ein Auszug mit den Fehlern, die die Read () -Funktion erzeugen kann und die im „Errno“ definiert sind.H ”Header zusammen mit einer kurzen Beschreibung jedes Fehlers und des zugehörigen Ganzzahlwerts:

Definition Wert in Errno Fehler
Eagain 11 Versuchen Sie es erneut.
Ebadf 9 Falsche Dateinummer.
EDESTADDRREQ 89 Zieladresse erforderlich.
Efault 14 Falsche Adresse.
Efbig 27 Datei zu groß.
Eintr 4 Systemaufruf unterbrochen.
Einval 22 Ungültiges Argument.
EIO 5 E/A -Fehler.
Eperm 1 Operation nicht erlaubt.

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

Sehen wir uns als nächstes ein Beispiel an, in dem wir versuchen, einen Deskriptor mit einem negativen Vorzeichen einzugeben, was zu einem Fehler führt. Um einen Fehler zu identifizieren, verwenden wir die „if“ -Konstufe, die wir im vorherigen Snippet gesehen haben. Um es zu identifizieren, öffnen wir einen Schalter mit den drei häufigsten Fehlern, die diese Funktion erzeugen kann.

#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
int main ()

intfd, n;
Char Buff [1024];
char path [] = "Dokumente/Beispiel.txt";
fd = open (Pfad, o_rdonly);
n = read (0, Buff, 1024);
if (n == -1)
Switch (errno)
Fall Ebadf:
printf ("schlechte Dateinummer. Fehler: %i \ n ", errno);
brechen;
Fall Einval:
printf ("ungültiges Argument. Fehler: %i \ n ", errno);
brechen;
Fall EIO:
printf ("E/A -Fehler . Fehler: %i \ n ", errno);
brechen;


Wie wir in der folgenden Abbildung sehen können, gibt die Funktion read () einen Fehler zurück, wenn ein ungültiger Deskriptor als Eingabeargument übergeben wird. Der Wert, der aus der Errno -Variablen abgerufen wird.

Abschluss

In diesem Linux -Hinweis -Artikel haben wir Ihnen gezeigt, wie Sie die Funktion Read () verwenden, eine der häufigsten Funktionen, die in der C -Sprache implementiert werden, um die Dateien zu lesen.

Wir haben uns die Syntax und einen Abschnitt angesehen, der den theoretischen Betrieb, Eingangs- und Ausgangsargumente und seine Datentypen beschreibt. Anschließend haben wir das implementiert, was wir durch ein praktisches Beispiel mit Code und Bildern gelernt haben, das zeigt, wie eine Datei mithilfe der Funktionen von Open () und Read () geöffnet und gelesen wird.

Um die notwendigen Mittel zu haben, um bei der Verwendung dieser Funktion einen möglichen Fehler zu beheben, haben wir einen speziellen Abschnitt hinzugefügt, in dem die Methoden erläutert werden, die die C -Sprache zur Erkennung und Identifizierung der Fehler anbietet.