永发信息网

使用/dev/random生成随机整数

答案:3  悬赏:60  手机版
解决时间 2021-02-02 18:00
  • 提问者网友:niaiwoma
  • 2021-02-02 07:04
使用/dev/random生成随机整数
最佳答案
  • 五星知识达人网友:归鹤鸣
  • 2021-02-02 08:21
Linux的设备可以当做普通文件来读写,使用C语言的标准库函数或者Linux库都可以,示例程序:
#include
#include
#include
#include
#include

int random_number (int min, int max)
{
   
    static int dev_random_fd = -1;
    char* next_random_byte;
    int bytes_to_read;
    unsigned random_value;
   
    assert (max > min);
   
    if (dev_random_fd == -1) {
        dev_random_fd = open (“/dev/random”, O_RDONLY);
        assert (dev_random_fd != -1);
    }
   
    next_random_byte = (char*) &random_value;
    bytes_to_read = sizeof (random_value);
   
    do {
        int bytes_read;
        bytes_read = read (dev_random_fd, next_random_byte, bytes_to_read);
        bytes_to_read -= bytes_read;
        next_random_byte += bytes_read;
    } while (bytes_to_read > 0);
   
    return min + (random_value % (max - min + 1));
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯