Das Einrichten eines Arbeitsverzeichnisses, das aus dem Linux -Root -Verzeichnis beginnt.
Die C -Sprache bietet die Funktion CHDIR (), um ein Arbeitsverzeichnis einzurichten, und hat auch eine Funktion zum Abfragen des Verzeichnisses, in dem Sie arbeiten.
In diesem Linux -Hinweis -Artikel erfahren Sie, wie Sie mit der Funktion GetCWD () das Verzeichnis, in dem Sie derzeit arbeiten, abfragen. Wir werden die theoretischen Funktionen dieser Funktion, ihre Syntax, die Argumente für Eingabe- und Ausgabe und jede Art von Daten erklären.
Um diese Funktion auf praktische Weise zu verwenden, werden wir alles anwenden, was wir durch ein praktisches Beispiel gelernt haben, in dem Sie Schritt für Schritt lernen, wie diese Funktion verwendet wird, um das aktuelle Arbeitsverzeichnis abzurufen.
Syntax der GetCWD () -Funktion in C -Sprache
char *getCwd (char *buf, size_t size);Beschreibung der GetCWD () -Funktion in C -Sprache
Die Funktion GetCWD () befragt das aktuelle Arbeitsverzeichnis des aufrufenden Programms oder des Prozesses. Diese Funktion gibt den Zeiger auf ein Zeichenarray „BUF of Size“ zurück, das eine Zeichenfolge mit dem absoluten Pfad des aktuellen Arbeitsverzeichnisses enthält.
Wenn der Anruf bei der Funktion getCwd () erfolgreich ist, gibt er den Zeiger mit dem Pfad des Arbeitsverzeichnisses auf die Zeichenfolge zurück. Wenn ein Fehler auftritt, ist das Ergebnis ein Nullzeiger. In diesem Fall wird der Fehleridentifikationscode automatisch in der globalen Errno -Variablen gespeichert.
Sowohl die Deklaration der Errno -Variablen als auch die Definitionen der Fehlercodes befinden sich im „Errno.H ”Kopfball. Im folgenden Beispiel sehen wir einen speziellen Abschnitt, in dem erklärt wird, wie die Fehler erfasst und identifiziert werden können.
Die Funktion getCwd () ist in der „Unistd.H ”Kopfball. Um es zu verwenden, müssen wir es in unsere aufnehmen “.c ”Datei wie folgt:
#enthaltenSo fragen Sie das aktuelle Arbeitsverzeichnis mit der Funktion getCwd () in der C -Sprache
In diesem Beispiel werden wir erläutern, wie das aktuelle Arbeitsverzeichnis abgerufen und in der Befehlskonsole angezeigt wird.
Der erste Schritt dazu besteht darin, die notwendigen Headers einzuschließen. In diesem Fall sind sie die „Unistdd.H ”und„ Stdio.H ”Dateien. Dann öffnen wir eine Main () -Funktion, die einen leeren Rückgaberwert zurückgibt und in dem wir einen Array -Pfad mit 128 Elementen vom Typ Zeichen deklarieren. In diesem Array speichert die Funktion getCwd () die Zeichenfolge mit dem Verzeichnis.
Sobald die erforderlichen Variablen deklariert sind, nennen wir die Funktion getCwd (). Wir übergeben das "BUF" -Ingabargument als Zeiger auf den Array -Pfad und die Größe des Puffer als Argumentgröße als 128 in diesem Fall.
Mit der Funktion printf () drucken wir dann das „The Tatsal Directory IS:“ -Meldung, gefolgt von dem Verzeichnispfad, der von der Funktion getCwd () zurückgegeben wird. Hier ist der vollständige Code für dieses Beispiel:
#enthaltenAls nächstes sehen wir ein Bild mit der Zusammenstellung und Ausführung dieses Code. In diesem Fall gibt GetCWD () den absoluten Weg des Heimverzeichnisses des Benutzers in Sitzung zurück:
Der gleiche Zeiger, der GetCwd () im Argument „BUF“ zurückgibt, gibt das folgende Ergebnis zurück:
Zeiger auf Buff = getCwd (Zeiger auf Buff, Größe);Dadurch kann die Funktion getCwd () aus den Eingabeargumenten einer anderen Funktion aufgerufen werden. Der folgende Code zeigt den Anruf aus den Eingabemargumenten von printf ():
#enthaltenIn diesem Fall führt printf () den Zeiger in die von getCwd () zurückgegebene Zeichenfolge und druckt ihn mit nur einer Codezeile in die Befehlskonsole aus.
Das folgende Bild zeigt, dass diese Methode im vorherigen Beispiel den gleichen Effekt wie das Programm hat:
Fehler bei der Verwendung der Funktion getCwd (): So erfassen und identifizieren Sie sie
Wenn beim Aufrufen der Funktion getCwd () ein Fehler auftritt, gibt er als Ergebnis einen Nullzeiger zurück. Der einfachste Weg, einen Fehler zu erkennen. Das Folgende ist ein Code -Snippet, das diese Methode zur Fehlererkennung verwendet:
if (getCwd (Pfad, 128) == null)Wenn ein Fehler auftritt, wird ein numerischer Code, der angibt.H ”Kopfball.
Dieser Header definiert auch die Fehlercodes und ihre numerische Darstellung.
Sie können die Fehler sehen, die die Funktion getCwd () erzeugen kann, ihre numerische Darstellung, die in der Errno -Variablen zurückgegeben wird, und eine kurze Beschreibung jedes einzelnen:
Definition | Wert in Errno | Beschreibung |
Enoent | 2 | Keine solche Datei oder Verzeichnis. |
Leacces | 13 | Zugriff verweigert |
Efault | 14 | Schlechte Adresse. |
Einval | 22 | Ungültiges Argument. |
Enametoolong | 36 | Dateiname oder Pfad zu lang. |
Der einfachste Weg, einen Fehler zu identifizieren, besteht darin, einen bedingten Schalter zu öffnen, bei dem die Sprungbedingung die globale Errno -Variable ist und jeder Fall eine Fehlerdefinition ist. Wir sehen den Code für diese Erkennungsmethode im Folgenden:
if (getCwd (Pfad, 128) == null)Die Variablen und Fehlercodes sind im „Errno.H ”Kopfball. Um sie zu benutzen, müssen wir sie in unsere aufnehmen “.c ”Datei wie folgt:
#enthaltenAbschluss
In diesem Linux -Hinweis -Artikel haben wir erläutert, wie die Funktion getCwd () verwendet wird, um das aktuelle Arbeitsverzeichnis des aufrufenden Programms zu bestimmen.
Wir haben uns einen theoretischen Abschnitt über diese Funktion angesehen, welche Eingabe- und Ausgangsargumente sind und welche Art von Daten sie verwendet. Anschließend haben wir das angewendet, was wir anhand der praktischen Beispiele mit Bildern und Codeausschnitten gelernt haben, die zeigen, wie die erforderlichen Variablen deklariert werden und die Funktion getCwd () aufgerufen werden können.
Wir haben auch einen speziellen Abschnitt beigefügt, in dem wir die verschiedenen Fehler auflisten, die diese Funktion generieren kann, und erklärt, wie sie erfasst werden können.