使用/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));
}
#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));
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯