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
10static const char* kRandomDevice = "/dev/urandom";
11
12
13int
14main()
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