Re: struct dirent question

[ Available lists | Index of freebsd-hackers | Month of Aug 2006 | Week of 16 Aug 2006 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Tobias Roth <roth@iam.unibe.ch>
Date
16 Aug 2006 05:49:43
Subject
Re: struct dirent question
Message-ID
20060816054925.GA11651@droopy.unibe.ch

In reply to
References to
Replies

[ Hide this part ]
On Tue, Aug 15, 2006 at 10:26:13PM -0500, Eric Anderson wrote:
> Does the ifdef in the struct dirent (pasted in below) make any sense?
> Seems like regardless of whether the __BSD_VISIBLE is defined or not,
> the d_name length will always be 255 + 1.
>
> Eric
>
>
> struct dirent {
> __uint32_t d_fileno; /* file number of entry */
> __uint16_t d_reclen; /* length of this record */
> __uint8_t d_type; /* file type, see below */
> __uint8_t d_namlen; /* length of string in d_name */
> #if __BSD_VISIBLE
> #define MAXNAMLEN 255
> char d_name[MAXNAMLEN + 1]; /* name must be no longer than
> this */
> #else
> char d_name[255 + 1]; /* name must be no longer than
> this */
> #endif
> };

The difference is whether MAXNAMLEN is defined or not, the value of d_name
is irrelevant. How far not defining MAXNAMLEN (in the case __BSD_VISIBLE=
false) makes sense, I cannot tell.

cheers, t.


Elapsed time: 0.326 seconds