1 #include <errno.h>
2 #include <fcntl.h>
3 #include <stdint.h>
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <string.h>
7 #include <unistd.h>
8
9
10 static const char* kRandomDevice = "/dev/urandom";
11
12
13 int
main()14 main()
15 {
16 int fd = open(kRandomDevice, O_RDONLY);
17 if (fd < 0) {
18 fprintf(stderr, "Error: Failed to open \"%s\": %s", kRandomDevice,
19 strerror(errno));
20 exit(1);
21 }
22
23 uint8_t buffer[16];
24 ssize_t bytesRead = read(fd, buffer, sizeof(buffer));
25 if (bytesRead < 0) {
26 fprintf(stderr, "Error: Failed to read from random device: %s",
27 strerror(errno));
28 exit(1);
29 }
30
31 printf("Read %d bytes from random device: ", (int)bytesRead);
32 for (int i = 0; i < bytesRead; i++)
33 printf("%02x", buffer[i]);
34 printf("\n");
35
36 return 0;
37 }
38
39