cvs commit: src/usr.sbin/kldxref kldxref.c

Bruce Evans bde at zeta.org.au
Wed Aug 9 21:51:27 UTC 2006


On Tue, 8 Aug 2006, Yar Tikhiy wrote:

> On Mon, Aug 07, 2006 at 01:59:30PM +1000, Bruce Evans wrote:
>> On Sun, 6 Aug 2006, Dag-Erling [iso-8859-1] Smørgrav wrote:
>>> MAXPATHLEN should be spelled PATH_MAX.
>>
>> Actually, MAXPATHLEN is better since it is honestly unportable.  It works
>> ...
> Just looked what SUSv3 says:
>
> 	It should be noted, however, that many of the listed limits
> 	are not invariant, and at runtime, the value of the limit
> 	may differ from those given in this header, for the following
> 	reasons:

It should say somewhere that the limits shall not be defined if they
are not invariant.  POSIX says this.  There are only a few limits
that are guaranteed to be compile-time constants (except for some
not very useful ones which give absolute minimum values).

>
> 	The limit is pathname-dependent.
>
> 	The limit differs between the compile and runtime machines.
>
> 	For these reasons, an application may use the fpathconf(),
                                           ^^^
> 	pathconf(), and sysconf() functions to determine the actual
> 	value of a limit at runtime.

It should say "must", or at least "should", since not using pathconf()
etc. won't work if the limit is undefined.

It's an implementation detail that PATH_MAX^WMAXPATHLEN is independent
of the file system (this is because everything goes through vfs_lookup()).
The related limit NAME_MAX is very fs-dependent.  FreeBSD bogusly defines
NAME_MAX, OPEN_MAX, CHILD_MAX, ...

Bruce


More information about the cvs-src mailing list