Linux chdir Systemaufruf in C

Linux Chdir Systemaufruf In C



Änderungen am aktuellen Arbeitsverzeichnis eines Geräts werden mit der „CHDIR“-Methode vorgenommen. Unter verschiedenen Umständen können Sie sich entscheiden, den aktuellen Arbeitsordner Ihres Geräts zu ändern. Oder Sie möchten ein C-Skript aus einem Ordner anstelle Ihres aktuellen Arbeitsverzeichnisses ausführen. Um diesen speziellen C-Code auszuführen, müssen Sie daher Ihren aktuellen Arbeitsordner ändern. Zusätzlich kann die „getcwd“-Methode der Programmiersprache C verwendet werden, um schnell festzustellen, wann sich der aktuelle Arbeitsordner geändert hat. Nun werden wir in diesem Artikel die Funktion chdir() von C verwenden, um ein Arbeitsverzeichnis zu ändern.

Beispiel 01:

Beginnen wir mit der Funktionsweise der chdir()-Funktion von C im Linux-Betriebssystem. Dazu müssen Sie ziemlich sicher sein, dass der Compiler von C bereits auf Ihrer Seite gemountet ist. In den meisten Fällen verwenden wir in unserem Kali-Linux-Betriebssystem den „gcc“-Compiler von C. Um mit diesem Beispiel zu beginnen, benötigen wir eine C-Datei mit der Erweiterung „c“. Wir haben es p1.c genannt und versucht, es mit dem „nano“-Editor von Linux zu öffnen, wie unten dargestellt.







Wenn Ihre Datei im Editor geöffnet wird, müssen Sie mit dem Codieren beginnen. Wir haben unser C-Programm begonnen, indem wir die wichtigsten Header-Bibliotheken von C hinzugefügt haben, die in jedem C-Programm unverzichtbar sind. Daher werden die Header-Bibliotheken stdio.h und unistd.h verwendet, um sicherzustellen, dass die Standardein- und -ausgabe innerhalb des Programms fließen kann. Der Header unistd.h wurde verwendet, um einige Standardfunktionen von C zu nutzen, die speziell für dieses Beispiel benötigt werden. Jetzt haben wir die main()-Treiberfunktion von C in diesem Code gestartet, damit sie bei der Ausführung automatisch ausgeführt wird. Die Zeichentyp-Array-Variable „Pfad“ wurde mit einer Größe von 100 definiert, da sie nur 100 Werte speichert.



Die printf()-Funktionsanweisung wurde verwendet, um einfach den aktuellen Arbeitsverzeichnisordner dieser C-Datei mit der „getcwd()“-Funktion auszudrucken. Diese Funktion verwendet die Array-Variable „Pfad“ mit einer Größe von 100, um das aktuelle Arbeitsverzeichnis darin abzurufen und es zur Anzeige an die printf()-Funktionsanweisung zu übergeben. Jetzt ist es an der Zeit, die Funktion chdir() zu verwenden. Wir können jede Art von Zeichen übergeben, um anzugeben, ob wir uns im Verzeichnis vorwärts oder innerhalb desselben Verzeichnisses rückwärts bewegen möchten.



Wir haben also versucht, die „..“-Zeichen in der chdir()-Funktionsanweisung aus dem aktuellen Arbeitsverzeichnis in die Rückwärtsrichtung zu bewegen, d. h. eine Ebene unter dem aktuellen Arbeitsverzeichnis. Beachten Sie, dass wir im Moment im Projektordner unseres Hauptarbeitsverzeichnisses „Linux“ des Kali Linux-Systems gearbeitet haben. Jetzt befinden wir uns im Verzeichnis „Linux“ anstelle des Verzeichnisses „Projekt“, nachdem wir die Funktion „chdir“ verwendet haben. Jetzt haben wir noch einmal versucht, mit der Funktionsanweisung „printf()“ das aktuelle Arbeitsverzeichnis anzuzeigen, indem wir die darin enthaltene Funktion „getcwd“ verwenden. Unser Programm endet mit der return 0-Anweisung.





Nachdem wir dieses C-Programm gespeichert haben, müssen wir es mit dem „gcc“-Compiler kompilieren, den wir bereits an unserem Ende konfiguriert haben. Unter Verwendung dieser gcc-Anweisung haben wir eine Objektdatei dieser C-Datei mit dem Namen „p1.out“ mit der Option –o erstellt, wie unten angezeigt.



Wenn Sie nun seine Objektdatei in Ihrem Linux-Terminal ausführen, erhalten Sie zuerst das vom Programm verwendete Arbeitsverzeichnis, bevor Sie die Funktion chdir() verwenden. Nach der Verwendung der Funktion chdir() sind wir in das eine Verzeichnis darunter gewechselt und dieses bestimmte Verzeichnis „home“ wird angezeigt.

Beispiel 02:



Unter Verwendung der gleichen Header-Bibliotheken haben wir diesen Programmcode gestartet. Innerhalb der main()-Funktion dieses Programms haben wir die „if“-Anweisung unter Verwendung der darin enthaltenen chdir()-Funktion verwendet.

Diese Funktion prüft, ob „/user“ im System existiert oder nicht, indem sie die Bedingung „/user!=0“ setzt. Wenn das Verzeichnis im aktuellen System nicht existiert, wird der Funktionsaufruf perror verwendet, um die entsprechende Fehlermeldung anzuzeigen, z. B. „Benutzerverzeichnis existiert nicht. Wir haben eine andere „if“-Anweisung mit der darin enthaltenen chdir()-Funktion verwendet. Der Zweck der Verwendung der Funktion chdir() ist hier auch derselbe wie in der obigen if-Anweisung, die dazu dient, zu prüfen, ob das Verzeichnis existiert oder nicht, indem die Bedingung „/temp“!=0 verwendet wird. Der einzige Unterschied besteht in der Verwendung eines neuen Verzeichnisnamens „/temp“ anstelle von „/user“, wie Sie dem Codebild unten entnehmen können.







Wenn das /temp-Verzeichnis nicht im System vorhanden ist, würde die in der „if“-Anweisung verwendete perror-Funktion eine Fehlermeldung „/temp-Verzeichnis existiert nicht“ ausgeben, wie in der Abbildung unten dargestellt. Nach der Verwendung beider „if“-Anweisungen haben wir diesen Code mit der Rückgabe-0-Anweisung von C beendet. Jetzt ist das Programm vorbei. Wir haben unseren C-Code vor seiner Ausführung mit der Tastenkombination Strg+S gespeichert.





Nachdem die Datei nun in Ihrem System gespeichert wurde, müssen wir den C-Code mit dem bei uns bereits gemounteten „gcc“-Compiler kompilieren. Mit dieser Anweisung haben wir ihre Objektdatei „p2.out“ mit der Option –o in der Anweisung erstellt.





Nach dem Ausführen der erstellten Objektdatei „p2.out“ mit den Zeichen „./“ haben wir erfahren, dass die beiden im Pfad von „chdir“ genannten Verzeichnisse im System nicht existieren bzw. der an der Shell angezeigte Fehler demonstriert wurde es richtig.



Fazit

In diesem heutigen Artikel haben wir die Verwendung der Funktion chdir() von C im Betriebssystem Kali Linux demonstriert. Das allererste Beispiel veranschaulicht, wie die Funktion chdir() verwendet werden kann, um ein Arbeitsverzeichnis zu ändern, d. h. von einem Verzeichnis in ein anderes zu wechseln. Das letzte Beispiel von C zeigt, wie wir überprüfen können, ob das aktuelle Arbeitsverzeichnis, das im Pfad von chdir() angegeben ist, existiert oder nicht.