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 — Obtiene información acerca de un enlace
Descripción
int linkinfo
( string
$path
)Obtiene información acerca de un enlace.
Esta función se usa para verificar si un enlace (apuntado por
path) existe realmente (usando el mismo método que la
macro S_ISLNK definida en stat.h).
Parámetros
-
path -
Ruta del enlce.
Valores devueltos
linkinfo() devuelve el campo st_dev
de la estructura de estadísticas de C en Unix devuelta por la llamada al sistema de
lstat. Devuelve 0 o FALSE en caso de error.
Historial de cambios
| Versión | Descripción |
|---|---|
| 5.3.0 | Esta función ahora está disponible en plataformas Windows (Vista, Server 2008 o mayores). |
Ejemplos
Ejemplo #1 Ejmeplo de linkinfo()
<?php
echo linkinfo('/vmlinuz'); // 835
?>
Ver también
- symlink() - Crea un enlace simbólico
- link() - Crea un enlace duro
- readlink() - Devuelve el objetivo de un enlace simbólico
rjb at robertjbrown dot com ¶
1 year ago
