Subject: Re: endianness-agnostic getpwent()
To: Andrew Brown <firstname.lastname@example.org>
From: Simon Burge <email@example.com>
Date: 11/13/2000 12:09:50
Andrew Brown wrote:
> >> This would not be too hard if dbopen()/DB would provide a way to find
> >> out the endiannes of the database.
> >Better solutions would be to either use network byte order all keys, or
> >use ASCII keys instead of binary keys. The problem with any solution
> >is that you still need to keep native byte-order keys to support older
> >statically linked programs.
> >And yes, I agree that not knowing the endianness of the database is a
> >bit of a pain...
> my pr, my solution, and now...my two cents.
> i was particularly amused at the time to see that even files owned by
> root were shown as owned by 0. so...how exactly are uids stored in
> the file? i always thought the little and big endian byte order
> representations of 0 were 0, regardless of the host endianness.
One representation stored in the passwd databases is "PW_KEYBYNUM" which
is the entries by sequence number. However this starts at 1 instead of
0. Perhaps whatever library routine that ls(1) uses to do the lookup
ends up using getpwent() instead of getpwuid() (or something like that).
Simon Burge <firstname.lastname@example.org>
NetBSD Sales, Support and Service: http://www.wasabisystems.com/