xref: /linux/tools/testing/selftests/bpf/urandom_read.c (revision b8265621f4888af9494e1d685620871ec81bc33d)
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <sys/types.h>
4 #include <sys/stat.h>
5 #include <fcntl.h>
6 #include <stdlib.h>
7 
8 #define BUF_SIZE 256
9 
10 static __attribute__((noinline))
11 void urandom_read(int fd, int count)
12 {
13        char buf[BUF_SIZE];
14        int i;
15 
16        for (i = 0; i < count; ++i)
17                read(fd, buf, BUF_SIZE);
18 }
19 
20 int main(int argc, char *argv[])
21 {
22 	int fd = open("/dev/urandom", O_RDONLY);
23 	int count = 4;
24 
25 	if (fd < 0)
26 		return 1;
27 
28 	if (argc == 2)
29 		count = atoi(argv[1]);
30 
31 	urandom_read(fd, count);
32 
33 	close(fd);
34 	return 0;
35 }
36