Wie um zu überprüfen, ob soft-link vorhanden ist oder nicht
user: ls -lt
lrwxrwxrwx 1 user sw-team 9 Jun 18 19:01 new_link -> test/file
Habe ich einen soft-link wie oben erwähnt. Ich möchte, um zu überprüfen, ob new_link(nicht die verlinkte Datei) vorhanden ist oder nicht. Ich habe versucht, alle unter, aber alle sind bei der Prüfung nur, wenn das endgültige Ziel-Datei (test/Datei) vorhanden ist oder nicht.
access(filename,F_OK)
stat()
open()
fopen()
Ich möchte Sie zu finden, in Sprache C nicht in shell-Skript.Bitte sagen Sie mir, wie zu finden, wenn new_link vorhanden ist, bevor Sie die verknüpfte Datei?
- Wenn der symbolische link nicht vorhanden ist, all die Mechanismen, die Sie versucht, würde einen Fehler melden. Jedoch, Sie würde auch einen Fehler melden, wenn die symbolische Verbindung existierte, doch ein Teil des Pfades weist auf Probleme Ursachen (nicht vorhanden oder Sie verfügen nicht über die Berechtigung oder ist nicht ein Verzeichnis, wenn es Bedürfnisse zu sein).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
lstat
- get symbolischen link status:(Hervorhebung von mir.)
lstat
zurück, die nicht null ist, underrno
aufENOENT
wenn der link (oder in irgendeinem anderen Teil der Pfad) nicht vorhanden ist.Beispiel:
Ausgabe:
Müssen Sie
lstat
zu bekommen, link-status und diereadlink
zu Lesen, der Wert der symlink.Ich habe geändert Jonthon code. Überprüfen Sie dies:
Absolute Pfad zur Erstellung Ihres links. Ansonsten müssen Sie es zu konvertieren, um relative Pfade.
readlink()
: stackoverflow.com/q/6026838/694576free()
linkname