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?