[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RFE: stat(1) flag for learning the d_type value of a given file
From: |
Pádraig Brady |
Subject: |
Re: RFE: stat(1) flag for learning the d_type value of a given file |
Date: |
Mon, 13 Oct 2014 21:14:37 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 |
On 10/13/2014 08:56 PM, Eric Blake wrote:
> The Cygwin developers have been trying to improve some d_type hints
> given during readdir(), to return DT_DIR instead of DT_UNKNOWN for
> obvious directories, as an example. But testing the patches for
> correctness has proved to be a bit of a challenge for testing. On an
> IRC chat, we discovered that it is really difficult to find out what
> d_type lists for a given file without using a debugger or writing a
> custom program - most GNU code is using it as an optimization to avoid
> lstat(), but never directly outputs that the optimization took place.
> So the idea was raised: could we teach stat(1) a new format arg that
> would make it painfully obvious what d_type hint is associated with a
> given file?
>
> Of course, such a format is not trivial, and must not be part of the
> default stat output. Given 'stat --format=... a', you'd have to do
> readdir() on "." until you find "a", in order to get to the d_type. But
> I couldn't think of any better utility to enhance to easily get at
> d_type information from the shell. At least, stat(1) feels like a
> better choice than ls(1) for adding the enhanced output information.
>
> What do you think? Should I spend time writing up a patch?
Maybe, though coreutils' tests also check d_type is available.
Would this suffice for cygwin?
http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=blob;f=tests/d_type-check;hb=HEAD
cheers,
Pádraig.