#include <sys/nv.h> // sender nvlist_t *nvl = nvlist_create(0); nvlist_add_string(nvl, "foo", "hello world"); nvlist_append_string_array(nvl, "serials", "123"); nvlist_append_string_array(nvl, "serials", "234"); if (nvlist_send(sockW, nvl) != 0) { FAIL } nvlist_destroy(nvl); // receiver nvlist_t *nvl = nvlist_recv(sockR, 0); if (nvl == NULL) { FAIL } if (nvlist_exists_string(nvl, "err")) { print(nvlist_get_string(nvl, "err")); } size_t serialsNum = 0; const char *const *serials = nvlist_get_string_array(nvl, "serials", &serialsNum); nvlist_destroy(nvl);