urandom如何限定随机数的范围?以及个数?

这是我找到的代码,read函数返回的是文件的字节数,那么urandom文件读取的内容就是随机数吗?这里限定了读取4个字节的意思是不是比如urandom可以随机1000000000000的数我们支取前4个字节位的数字?那么把这个数字的字节数给了(char )&randNum是为什么?为什么不是(int)&randNum?另外(char *)&randNum 得到了字节数,为什么打印出来是个随机数。?

01.#include

02.#include

03.

04.int main()

05.{

06. int randNum = 0;

07. int fd = open("/dev/urandom", O_RDONLY);

08. if(-1 == fd)

09. {

10. printf("error\n");

11. return 1;

12. }

13.

14. read(fd, (char *)&randNum, sizeof(int));

15. printf("randNum is %d\n", randNum);

16.

17. close(fd);

18.

19. return 0;

20.}