Beispiel 1:
In unserem ersten Beispiel werden wir uns den einfachen C -Code der Verwendung der Funktion „RealPath“ ansehen, um den realen und ganzen Pfad einiger Dateien aus dem aktuellen Arbeitsverzeichnis des Systems zu erhalten. Zu Beginn dieses Codes müssen wir insgesamt 6 grundlegende Header -Dateien verwenden. Einige Bibliotheken sind Standardbibliotheken, die den Eingabemittel -Stream im Code verwenden, einige sind hier, um die Zeichenfolgenwerte zu verwenden, und einige werden verwendet, um die Ausnahmebehandlung durchzuführen. Die main () -Funktion dieses Codes definiert ein Zeichen-Array vom Typ "Puffer" mit einer integrierten Größe von "Pfad max" oder 0. Dieses Array wird verwendet, um den realen und vollständigen Weg einiger Verzeichnisse zu retten.
Die RealPath () -Funktion nimmt die „seltsame file.TXT ”-Teiname mit dem" Puffer "-Array, das als Argument für die Speicherung des gesamten Pfades an ihn übergeben wird. Ein Zeiger „Pfad“ des Zeichentyps wird initialisiert, um auf die Adresse einer "Puffer" -Variable zu verweisen, die den Pfad einer Datei enthält, die von der RealPath () -Funktion übergeben wurde.
Hier kommt die Anweisung „If-ELSE“, um zu überprüfen, ob wir die richtige Referenz für den Dateipfad erhalten haben oder ob der Zeiger „Pfad“ leer ist. Wenn es die richtige Referenz zurückgibt, wird die FRINGF -Funktion verwendet, um den Text „Der vollständige Dateipfad von SOLDFILE anzuzeigen.TXT: ”zusammen mit dem realen Pfad der bestimmten Datei. Andernfalls wird die elsee Anweisung ausgeführt und die darin verwendete Printf. Die Perror -Funktion wird verwendet, um denselben Fehler erneut mit dem Fehler "RealPath" anzuzeigen. Um den Fehler zu erhalten. Sparen wir unser erstes Beispiel und kompilieren Sie es, um seine Ergebnisse zu sehen.
Wir verwenden den GCC -Compiler, um den Realpath zu kompilieren.c Datei mit der Option -o zum Generieren der Objektdatei mit dem Namen „RealPath.Out “im selben Arbeitsverzeichnis. Dieser Befehl ist erfolgreich und wir haben die gleichnamige Objektdatei in das Home "SRC" -Verzeichnis gemäß der Ausgabe der LS -Anweisung erhalten.
Jetzt führen wir die Objektdatei aus, die wir gerade mit dem erstellt haben “./”Zeichen im selben Arbeitsverzeichnis. Die Ausgabe dieses Befehls zeigt uns den vollständigen Pfad für diese bestimmte Datei an, die im Stammordner starten, wie die „/home/linux/src/selten.txt".
Beispiel 2:
Beginnen wir mit einem anderen Beispiel, um die Funktion RealPath () zu verwenden, um den realen Pfad einiger Dateien zu erhalten. In diesem C -Code haben wir dieselben 6 Header -Dateien mit dem Schlüsselwort "#include" hinzugefügt. Danach wird die main () -Funktion mit der Zeigervariablen "Zeiger" initialisiert.txt". Ein „tatsächliches Pfad“ -Array wird verwendet, um den realen Pfad der „seltsame Datei“ zu speichern.txt ”-Datei mit„ +1 “, um den Pfad einer nach dem zweiten"/"-Scharakter genannten Datei zu holen. Ein weiterer "PTR" -Regier des Zeichenstyps ist definiert.
Wir übergeben die Link -Pfadzeiger -Variable und das tatsächliche Pfadarray an die Funktion RealPath (), um den gesamten Pfad des „/src/seltsfile) zu erhalten.txt "zum" tatsächlichen Pfad "-Array. Das zurückgegebene Ergebnis wird in der PTR -Zeigervariablen gespeichert. Innerhalb des Teils „If“, wenn das „PTR“ das Ergebnis durch die RealPath () -Funktion zurückgibt, die eine Referenznummer enthält. Andernfalls wird der else -Teil dieses Code ausgeführt und generiert einen Fehler über die Verwendung der Strerrorfunktion unter Verwendung der Variablen „Errno“ als Argument. Die Ausgangsfunktion besteht darin, dieses Programm zu beenden.
Wir haben diesen C -Code mit dem GCC -Compiler zusammengestellt und seinen „Realpath1) erstellt.OUT ”Objektdatei vor der Option -o vorangegangen.
Nach dem Ausführen der Objektdatei mit der “./”Charakter haben wir den Fehler erhalten, weil wir nicht das richtige Format des Dateipfads bereitgestellt haben.txt".
Lassen Sie uns den Code noch einmal aktualisieren, um diesen Fehler kurz nach der Ausführung der Objektdatei zu vermeiden. Wir aktualisieren seine erste Zeile innerhalb der Hauptfunktion,. Der Zeigertypzeiger „Linkpfad“, der die spezifische Datei mit einem darin enthaltenen Ordner enthält, wird aktualisiert. Jetzt fügen wir den Namen eines „Einfils hinzu.TXT ”-Datei, die sich im aktuellen Arbeitsverzeichnis„ SRC “anstelle des"/src/seltsfile "befindet.TXT ”Pfad zum Working Directory -Ordner. Der Rest des Code wird ohne Änderung verwendet. Speichern und führen Sie diesen Code aus, um die Ergebnisse zu sehen.
Nach dem Kompilieren dieser C -Datei mit dem GCC -Compiler und des Erstellens des „RealPath1.OUT OUT ”Objektdatei mit dem -o -Objekt ist sie bereit, ausgeführt zu werden.
Nach der Ausführung der C -Objektdatei, des realen und vollständigen Pfades der spezifischen Datei “SOLDFILE.txt ”wird auf dem Terminalbildschirm angezeigt.
Abschluss
In diesem Artikel geht es um die Verwendung der realen Methode der POSIX C -Bibliothek, um den realen und vollständigen Pfad einer bestimmten Datei anzuzeigen. Dafür haben wir die beiden C -Beispiele in der Kali Linux -Plattform ausprobiert. In unseren Beispielen untersuchten wir, wie diese Funktion auf einen einzelnen Dateinamen oder mit einem bestimmten Pfad reagiert.