is_link() behavior

From: Date: Tue, 24 Apr 2001 06:35:59 +0000
Subject: is_link() behavior
Groups: php.dev 
Request: Send a blank email to php-dev+get-52252@lists.php.net to get a copy of this message
This was originally posted to php-general, but for some reason I believe it may belong here. I apologize if I'm wrong. Forgive me for my ignorance, but I've noticed some unwanted behavior (IMO, at least) with the is_link() function. Given the simple code.. if ( is_link ("/tmp/this_is_a_symlink") ) print ("Success\n"); and the file.. lrwxrwxrwx 1 root root 5 Apr 23 21:19 /tmp/this_is_a_symlink -> /bin/ the above obviously prints 'Success\n'. However, if I BREAK the symlink, with something like the following.. lrwxrwxrwx 1 root root 4 Apr 23 21:21 /tmp/this_is_a_symlink -> foo the script fails with.. Warning: stat failed for /tmp/this_is_a_symlink (errno=2 - No such file or directory) in ./test.php on line 3. The file /tmp/this_is_a_symlink is still a symlink, so it seems to me that the is_link() function should still return true, whether or not the symlink's target exists. Is there perhaps a function I have yet to discover that provides that behavior, without verifying the link's target? I ask this because much of linux's /proc contains (intentionally) broken symlink's and is_link()'s behavior is making the scouring of /proc difficult on me. ;) Thanks for any input.. J. Jones P.S. The script ran as root, so filesystem permissions aren't the issue.

« previous php.dev (#52252) next »