Glibc 2.17, открываю search.h и вижу такой апи
int  hsearch_r  (item, action, **return, *htable)
int  hcreate_r  (nel, *htable)
void hdestroy_r (*htable)
Гуглю альтернативы:
- uthash макро ад!
 - khash макро ад!
 - glib hash тащить целый glib ради хэш таблиц не хочется
 - strmap хранит char *, а не void *
 - judy «if you have random access and sparse keys, Judy lookups and deletes could be twice as slow as an optimized hash table». не нужно
 - hashit GPL v2 без Lesser
 
Итого выбрал CCAN.
Но тут внезапно гугл выкатывает u-boot где вижу апи
int     hcreate_r  (nel, *htable)
void    hdestroy_r (*htable)
int     hsearch_r  (item, action, **return, *htable, flag)
int     hmatch_r   (*match, last_idx, **return, *htable)
int     hstrstr_r  (*match, last_idx, **return, *htable)
int     hdelete_r  (*key, *htable, flag)
ssize_t hexport_r  (*htable, separator, flag, **responce, size, argc, *argv[])
int     himport_r  (*htable, *env, size, separator, flag, argc, *vars[])
int     hwalk_r    (*htable, *callback);
Вопрос почти риторический: почему этот форк уже минимум 2.5 года не видят разработчики glibc?



