Web lists-archives.com

Re: dirent.d_type is not working on Cygwin symbolic links.




Christian Franke schreef op 2017-01-29 12:15:
waterlan wrote:
The dirent.d_type value for Cygwin symbolic links is 0 (DT_UNKNOWN). The value is 10 (DT_LNK) for Windows native symbolic links. I think d_type should be 10 for Cygwin symbolic links too.


Sorry, no.

The actual type should only be returned in dirent.d_type if the info
is available at very low cost. This is not the case for Cygwin
symbolic links.

If DT_UNKNOWN is returned, lstat() must be called if type info is required.

Quote from Linux man page readdir(3):
"All applications must properly handle a return of DT_UNKNOWN."
(https://linux.die.net/man/3/readdir)

See also thread starting at:
https://sourceware.org/ml/cygwin-patches/2008-q4/msg00000.html

In this case I do not agree with this. Cygwin symbolic links are there to emulate Linux symlinks. Therefore I expect the same behaviour.

``Cygwin is
* a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.''
(https://cygwin.com/)

regards,

--
Erwin Waterlander
http://waterlan.home.xs4all.nl/

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