2014年01月23日 星期四 09:02
random是APR运行库中有关随机数的模块,我们经常会需要在程序中生成随机数,random模块提供了方便快捷的apr_generate_random_bytes方法来实现此功能。在Linux平台,它的底层是通过读取/dev/urandom来获取随机数据的。
编程示例如下:
#include <stdio.h> #include <apr.h> #include <apr_pools.h> #include <apr_errno.h> #include <apr_strings.h> #include <apr_time.h> #include <apr_random.h> void apr_err(const char *s, apr_status_t rv) { char buf[120]; fprintf(stderr, "%s: %s (%d)\n", s, apr_strerror(rv, buf, sizeof buf), rv); } int main(int argc,char **argv) { apr_initialize(); apr_pool_t *pool; apr_pool_create(&pool,NULL); apr_status_t st; unsigned char *buf=apr_pcalloc(pool,16); apr_generate_random_bytes(buf,16); for(int i=0;i<16;i++) { printf("%02x",buf[i]); } printf("\n"); unsigned int x=0; apr_generate_random_bytes((unsigned char *)&x,sizeof(x)); printf("%u\n",x); apr_pool_destroy(pool); apr_terminate(); return 0; }
参考资料:
Zeuux © 2024
京ICP备05028076号