I expected this function to return FALSE or 0 if a symbolic link did not exist (per the documentation above), but that's not what happened. Reading the man page for the Linux kerne's stat call here: http://www.kernel.org/doc/man-pages/online/pages/man2/stat.2.html it says this:
RETURN VALUE - On success, zero is returned. On error, -1 is returned, and errno is set appropriately.
... which is what is happening in my case. I am doing a linkinfo('/path/to/file'); on a missing symlink, and I get back a value of -1. As we know, a value of -1 is not going to evaluate to a FALSE or 0.
My point - be careful with return values for missing symlinks.
linkinfo
(PHP 4, PHP 5)
linkinfo — Liefert Informationen über einen Link
Beschreibung
int linkinfo
( string
$path
)Liefert Informationen über einen Link.
Diese Funktion wird benutzt, um zu verifizieren, ob ein Link (auf den
mit path gezeigt wird) wirklich existiert. Dabei
wird die gleiche Methode benutzt, die in dem S_ISLNK-Makro in
stat.h definiert ist).
Parameter-Liste
-
path -
Pfad zum Link.
Rückgabewerte
linkinfo() gibt das st_dev-Feld der
Unix-C-Stat-Struktur, die vom lstat-Systemaufruf
zurückgegeben wird, zurück. Gibt 0 oder FALSE im Fehlerfall zurück.
Changelog
| Version | Beschreibung |
|---|---|
| 5.3.0 | Diese Funktion ist nun verfügbar unter Windows-Plattformen (Vista, Server 2008 or neuer). |
Beispiele
Beispiel #1 linkinfo()-Beispiel
<?php
echo linkinfo('/vmlinuz'); // 835
?>
Siehe auch
- symlink() - Erzeugt einen symbolischen Link
- link() - Erzeugt einen harten Link
- readlink() - Liefert das Ziel eines symbolischen Links
rjb at robertjbrown dot com ¶
1 year ago
