新聞中心
linux系統(tǒng)是一款功能強大的操作系統(tǒng),用C編程語言在Linux中經(jīng)常要生成隨機數(shù),以實現(xiàn)不同的應(yīng)用。隨機數(shù)可以用于算法設(shè)計、模擬、密碼學(xué)、密碼運算以及計算機安全等領(lǐng)域中。下面介紹一些在Linux C程序中生成隨機數(shù)的方法:

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的通化網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
1、 使用rand函數(shù)。rand函數(shù)是標(biāo)準(zhǔn)C庫函數(shù),也就是說在Linux中可以使用它來生成隨機數(shù),假設(shè)要生成1.0~100.0范圍內(nèi)的隨機數(shù),可以使用下面的代碼:
#include
#include
int main()
{
//設(shè)置隨機數(shù)種子
srand((unsigned)time(NULL));
//生成 隨機數(shù)
double r;
r = (double)(rand()%1000)/10+1.0;
printf("r = %.1f\n",r);
return 0;
}
2、使用rand_r函數(shù)。rand_r函數(shù)是一種線程安全的隨機數(shù)生成函數(shù),可以在多線程環(huán)境中使用,假設(shè)要生成1~100范圍內(nèi)的隨機數(shù),可以使用下面的代碼:
#include
#include
int main()
{
unsigned int seed;
seed = (unsigned int)time(NULL);
int result;
//生成隨機數(shù)
result = rand_r(&seed)%100+1;
printf("result = %d\n", result);
return 0;
}
3、使用urandom函數(shù)。urandom函數(shù)是在/dev/urandom文件中讀取的一種偽隨機數(shù)生成函數(shù),假設(shè)要生成0~15范圍的隨機數(shù),可以使用下面的代碼:
#include
#include
int main()
{
int fd;
fd = open("/dev/urandom", O_RDONLY);
if (fd
{
printf("Open Faile\n");
}
else
{
printf("fd = %d\n", fd);
int result;
read(fd, &result, 3);
result = result%16;
printf("result = %d\n", result);
}
close(fd);
return 0;
}
以上介紹的是在Linux C程序中生成隨機數(shù)的幾種不同方法,可以根據(jù)實際需要選擇合適的方法來實現(xiàn)以及達到安全可靠的目的。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機房服務(wù)器托管/機柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機房租用、服務(wù)器托管、機柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動、聯(lián)通機房等。
本文名稱:LinuxC代碼中生成隨機數(shù)的方法(linuxc取隨機數(shù))
轉(zhuǎn)載源于:http://www.fisionsoft.com.cn/article/dhsegic.html


咨詢
建站咨詢
