This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: mingwin: dirent structure d_name field is pointer not array


> From: Mumit Khan <khan@NanoTech.Wisc.EDU>
> 
> On Thu, 22 Feb 2001, Reuben Thomas wrote:
> 
> > I'm not sure if this counts as a bug, but readdir as defined by POSIX has a
> > field char d_name[], but in mingwin it's a char *, which caused me a fair
> > amount of grief working out why I was getting rubbish for the contents of
> > directories...
> 
> POSIX simply says that readdir() returns pointer to a structure that
> contains a member named d_name, which is guaranteed to be null terminated
> string; the length is unspecified, but no longer than NAME_MAX. Given 
> this specification, how is the Mingw behaviour not correct?

SUS 2 and predecessors define d_name as <array of char> rather
than <char *>. I can't think of any reasonable code which would
care about the difference though, especially since the length
of the string is greater than the declared size of the array in
some implementations anyway.

I agree that it's technically wrong if it's defined as a <char *>,
but I'd be interested if Reuben could give an illustration of why
it matters.


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]