David Kastrup <dak <at> gnu.org> writes:

> >> fstat, yes.  But shouldn't stat be able to report S_ISLNK on a broken
> >> link?
> >
> > No.  It must fail with ENOENT.
> > http://www.opengroup.org/onlinepubs/009695399/functions/stat.html
> 
> No information there.  "component of a path" has nothing to do with
> symlink resolution.
> 

"If the named file is a symbolic link, the stat() function shall continue 
pathname resolution using the contents of the symbolic link, and shall return 
information pertaining to the resulting file if the file exists."

In other words, if file is a broken symlink, symlink resolution MUST take 
place, at which point, the brokenness of the symlink means that stat() MUST 
fail with ENOENT because a component of the path does not exist.  Cygwin is 
correct here, as is Linux.

-- 
Eric Blake





--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to