Re: dirent.d_type is not working on Cygwin symbolic links.
- Date: Sun, 29 Jan 2017 20:34:32 +0100
- From: Thomas Wolff <towo@xxxxxxxx>
- Subject: Re: dirent.d_type is not working on Cygwin symbolic links.
Am 29.01.2017 um 20:17 schrieb waterlan:
As you're quoting from the cygwin home page, you chose the wrong bullet.
It's about tools while the functionality you are commenting about is
Christian Franke schreef op 2017-01-29 12:15:
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.
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
If DT_UNKNOWN is returned, lstat() must be called if type info is
Quote from Linux man page readdir(3):
"All applications must properly handle a return of DT_UNKNOWN."
See also thread starting at:
In this case I do not agree with this. Cygwin symbolic links are there
to emulate Linux symlinks. Therefore I expect the same behaviour.
* a large collection of GNU and Open Source tools which provide
functionality similar to a Linux distribution on Windows.''
So the reference here is POSIX, not Linux, if we're getting picky. And
as Christian Franke had already quoted, the field in question is not
mandatory at all by POSIX. So you'll have to do what other people also
do: defensive programming, not expecting too much but taking all cases
* a DLL (cygwin1.dll) which provides substantial POSIX API functionality.
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple