Errno in c

Errno in c
C Sprache erlaubt nicht direkt die Fehlerverwaltung, ermöglicht den Zugriff auf einer geringeren Ebene über Rückgabewerte nicht direkt. Im Falle der Ungenauigkeit ergeben die Mehrheit der C- oder sogar die Linux -Funktionsaufrufe -1 oder void und setzen Sie den Errno -Fehlercode fest. Es ist eine universelle Konstante, die zeigt, wann ein Funktionsaufruf fehlgeschlagen ist. In der Header -Datei finden Sie eine Liste verschiedener Fehlercodes. Infolgedessen kann ein C -Entwickler die gelieferten Werte untersuchen und basierend darauf die erforderlichen Maßnahmen ergreifen. Es scheint keine Probleme im Programm zu geben, wenn das Ergebnis 0 ist. In diesem heutigen Artikel werden wir die Verwendung der Variablen „Errno“ diskutieren, um Fehlercodes und Nachrichten in unserer Linux -Umgebung zu erhalten (i.e., Ubuntu 20.0.4 System.) Lassen Sie uns mit der Öffnung einer Terminalschale im Ubuntu 20 beginnen.04 Linux -Betriebssystem und Installation des GCC -Compilers von C.

Bevor wir uns zur Erstellung eines C -Codes bewegen, benötigen wir eine C -Datei in unserem Linux -System. Daher haben wir die Berührungsanweisung verwendet, um eine zu erstellen. Diese Datei muss am Ende eine C -Erweiterung enthalten. Wie Sie herausfinden können, haben wir eine Datei mit dem Namen „Errno) erstellt.C". Der Befehl Listen wurde verwendet, um alle Dateien und Ordner unseres aktuellen Arbeitsverzeichnisses unter Linux aufzulisten. Die neu gemachte C -Datei “errno.C ”ist auch hier aufgeführt. Um C -Code in der Datei zu erstellen, müssen wir ihn in einem Editor wie einem Texteditor, VIM -Editor oder GNU Nano Editor öffnen. Wir haben es also im GNU -Nano -Editor mit dem Befehl „Nano“ in der Shell geöffnet. Diese Datei wird in einem Terminal-ähnlichen Editor geöffnet.

Beispiel 01

Beginnen wir mit dem ersten Beispiel dieses Artikels. Nehmen wir an, Sie möchten die Daten aus einer bestimmten Textdatei mit der Einreichung in C -Code öffnen und lesen, die sich im selben aktuellen Verzeichnis befinden. Dafür müssen wir die Standardeingangsausgabebibliothek eines C in unserem Code verwenden. Wir haben es also in die Eröffnungszeile mit dem Schlüsselwort "#include" aufgenommen.

Danach müssen wir das „Errno“ verwenden.H ”-Header in diesem C-Code, damit wir die integrierte Variable„ Errno “verwenden können, um den Fehlercode und die Meldung zu erhalten. Die Hauptausführung wird aus der Funktion „main ()“ des C -Programms gestartet. In diesem Hauptprogramm haben wir die Variable "Datei" verwendet, um den Dateideskriptor "F" des Zeigertyps zu initialisieren. Dieser Dateideskriptor wurde verwendet, um die Datei „Neu“ zu öffnen.txt ”in einem schreibgeschützten Format mit der Funktion„ fopen “der Einreichung in C. Die IF-ELSE-Anweisung ist hier, um zu überprüfen, ob die Datei erfolgreich geöffnet wird oder nicht. Der "wenn" -Teil der Anweisung prüft, ob das zurückgegebene Ergebnis des Dateideskriptors gleich 0 ist oder nicht. Wenn 0, bedeutet dies, dass die Datei fehlt oder nicht erfolgreich geöffnet wird. Somit verwendet die Printf -Anweisung die Variable „Errno“, um den Fehlercode anzuzeigen.

Andererseits wird der Teil "else" verwendet. In der Printf -Anweisung wird angezeigt, dass die Öffnung erfolgreich ist.

Wir haben diesen Code mit dem "GCC" -Kompiler zusammengestellt und ihn dann mit dem "ausgeführt"./A.Out “Anweisung. Diese Codeausführung gibt die Fehlercode -Nummer 2 zurück, bei der keine Datei gefunden wurde.

Um diesen Fehler zu entfernen, müssen wir eine neue Textdatei mit der Anweisung „Berührung“ erstellen und einige Daten mit der Anweisung „Echo“ wie gezeigt hinzufügen. Die Anweisung „Katze“ zeigt, dass die Datei die neu hinzugefügten Textdaten darin enthält.

Wenn Sie nun denselben Code in der Shell kompilieren und ausführen, wird der Teil "else" ausgeführt und die Nachricht "erfolgreich" (ich.e., Datei wurde jetzt gefunden.)

Wenn Sie die Fehlermeldung zusammen mit ihrem Fehlercode anzeigen möchten, müssen Sie die Funktion „Strerror“ im Programm verwenden. Dafür müssen Sie die String verwenden.H ”auch im Code Header. Wir haben also den Header hinzugefügt und die "if" -Komponente der Anweisung "If-ELSE" aktualisiert. Der Funktionsaufruf von Strerror () hat den „Errno“ verklagt, um die Fehlermeldung durch den Fehlercode zu erhalten.

Wenn Ihre Datei fehlt, werden Sie mit der Fehlermeldung „Keine solche Datei oder Verzeichnis“ an der Shell angezeigt.

Beispiel 02

Überprüfen Sie die Fehlernummer für ein anderes Fehlerbeispiel. Wir haben die Standardbibliotheken im Programm verwendet, und die Funktion main () enthält die Initialisierung einer Variablen- und Funktionsaufruf, um die Funktion „Val“ zu überprüfen. Die Funktion check () würde die Anweisung "If-else" verwenden, um zu überprüfen, ob der Wert "Val" Null ist oder nicht, und daher kann der andere Wert dadurch teilbar sein oder nicht. Da der Wert „Val“ 7 ist, kann er durch 8 teilbar sein. Daher wird der Teil der Funktion "check ()) ausgeführt, um das Divisionsergebnis zu berechnen und auf der Shell anzuzeigen.

Nach der Zusammenstellung und Ausführung haben wir festgestellt, dass die Teilung möglich ist. Der sonstige Teil hat den Teilungswert zwischen 89 und Wert „7“ für die Variable „Val“ berechnet und angezeigt.

Aktualisieren wir den Code erneut und fügen Sie 0 als Wert zur Variablen „Val“ in der Funktion main () hinzu, um die Ergebnisse umzukehren. Daher haben wir den Wert "Val" auf 0 aktualisiert, wie im Bild unten angegeben. Der verbleibende Code blieb unberührt.

Nachdem wir diesen aktualisierten Code ausgeführt haben, haben wir den Fehlercode 0 und seine Fehlermeldung.

Abschluss

Hier geht es um die Verwendung der Variablen „Errno“ im Artikel, um die Fehlercodes verschiedener Ausnahmen mithilfe seines "Errno" zu erhalten.H ”Kopfball. Außerdem haben wir die Verwendung der Funktion „Strerror“ besprochen, um die Fehlermeldung zusammen mit der Codenummer anzuzeigen. Wir haben zwei Fälle in diesen Leitfaden aufgenommen, um die Idee von Errno besser zu erklären.