On Thu, Jun 02, 2016 at 04:08:37PM -0400, Neil Horman wrote: > struct key_vals { > char *key; > union { > ulong longval; > void *ptrval; > } value; > }; > > struct config { > size_t count; > struct key_vals kvp[0]; > };
This sort of code is very 1970s / ioctl / messy binary. And doesn't buy any performance advantage because it's just for config. Something that looks more like sysctl MIBs with hierarchical names or like JSON w/ a hierarchy of hash tables and arrays is much less user-hostile. https://www.freebsd.org/cgi/man.cgi?sysctl(3) http://json-c.github.io/json-c/json-c-0.12/doc/html/json__object_8h.html Matthew.