| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #include <stdio.h>
- #include <stdlib.h>
- #include <uuid.h>
- #include <unistd.h>
- 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);
- }
- }
|