主要记录C语言编程中的一些注意事项:
1、memcmp用于比较字符串的时候,size_t最好采用sizeof(“xxxx”),多比较一个结束符,不用担心长短重合的问题;
memcmp(buf , "WPA2PSK" ,sizeof("WPA2PSK"))
2、对数据的某一位进行反转
对1移位之后,异或运算即可。
3、随机数
常用随机数多是伪随机数,比如调用rand(),如果不指定种子,每次生成的随机数都是按顺序不变的,因此需要对种子进行随机,多用当前时间,srand(time(NULL));
一般系统设计中,上面的随机方法基本能满足要求,但是对于安全性要求较高的,还是不要用。
有另外的方法,利用linux的/dev/urandom文件产生更好的随机数,参考代码如下:
-
#include <stdio.h>
-
#include <fcntl.h>
-
-
int main()
-
{
-
int randNum = 0;
-
int fd = open("/dev/urandom", O_RDONLY);
-
if(-1 == fd)
-
{
-
printf("error\n");
-
return 1;
-
}
-
read(fd, (char *)&randNum, sizeof(int));
-
close(fd);
-
printf("randNum is %d\n", randNum);
-
-
return 0;
-
}
同样可以使用linux下的/dev/random文件,具体还没用使用过。
阅读(2657) | 评论(0) | 转发(0) |