欢迎分享,转载请注明来源:内存溢出
linux内核自1.3.30版本以来实现了一个随机数产生器,从理论上说它能产生真正的随机数,该随机数产生器是从设备驱动收集电路上的环境噪音放入熵池,它的实现代码在drivers/char/random.c中,自己去看吧如何设置种子呢?一般就 用time函数返回当前时间即可。一般来讲,这样的做法基本上就可以了,因为虽然我们用的是随机数,但是由于种子不同,从上亿的数中去猜测我们的种子几乎 是不可能的。例如:#include #include #include #define random(x) (rand()%x) void main() { srand((int)time(0))for(int x=0x 0) { unsigned int rint ifor (i = 0i <512i++) { read (fd, &r, sizeof (r))ticks += r} close (fd)} srand (ticks)printf("init finished ")} unsigned int new_rand () { int fdunsigned int n = 0fd = open ("/dev/urandom", O_RDONLY)if (fd >0) { read (fd, &n, sizeof (n))} close (fd)return n} int main () { int n, iinit_random ()n = rand ()printf ("n=%d ", n)for(i=0i
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
联想SR588重装linux系统进不去
上一篇
2023-04-23
机顶盒软件开发属于嵌入式软件开发吗?需要掌握关于Linux的哪些知识?能详细点吗?谢谢
下一篇
2023-04-23
评论列表(0条)