This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] Make getenv O(1)


On Mon, Oct 14, 2013 at 05:52:29PM +0200, OndÅej BÃlka wrote:
> Hi, when I browsed getenv i found that it uses linear search.
> 
> But in getenv there is code that uses trees and I have doubts about its
> usefullness.
> 
> The getenv/setenv could be easily changed to use hash table, does
> something block us to do so?
> 
> A possible complication would be that we need additionaly maintain
> __environ which causes some code overhead.
> 
> Comments?

In general it's impossible to use anything but linear search because
the application can modify environ[] directly (although it's
questionable whether this is permissible by the standard) or use
putenv and modify the strings after they're added to the environment
(this is explicitly permitted by POSIX). There may be cases where it's
possible to detect that this does not happen and use a faster
approach; I'm not sure.

Rich


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