#include #include #include #include void check_uuid_status(uint32_t uuidstatus); int main() { /* restrict ourselves to standard IO */ pledge("stdio", NULL); /* allocate space to store a generated UUID, a string representation * and status/error information. */ void *myuuid; char *myuuidstr; uint32_t uuidstatus; myuuid = malloc(sizeof(uuid_t)); /* create a UUID (Version 4), convert it to a string representation, * and print it out to the screen. */ uuid_create(myuuid, &uuidstatus); check_uuid_status(uuidstatus); uuid_to_string(myuuid, &myuuidstr, &uuidstatus); check_uuid_status(uuidstatus); printf("%s\n", myuuidstr); /* free malloc()'ed memory. */ free(myuuid); free(myuuidstr); return 0; } /* process and check uuid status. Returns zero if program should continue, * otherwise returns -1 if program should exit. * If an issue is identified, it prints a message to STDERR. */ void check_uuid_status(uint32_t uuidstatus) { switch (uuidstatus) { case uuid_s_bad_version: fprintf(stderr, "Unknown UUID version. Exiting.\n"); exit(-1); case uuid_s_no_memory: fprintf(stderr, "Unable to allocate memory. Exiting.\n"); exit(-1); } }