/dev/random 를 이용한 랜덤값 출력 프로그램인데요
글쓴이: csw0228 / 작성시간: 금, 2009/01/09 - 4:44오전
/dev/random 를 이용한 랜덤값 출력 프로그램인데요
분명 프로그램은 정상적인거 같은데 컴파일 잘되고 실행 잘되는데 랜덤값이 블럭으로나오거나 깨져서 나오고 그러네요
컴파일 환경이 페도라 10 커널 2.6 이구요
혹시나해서 페도라 9 커널 2.6과 centOS 5.2 커널 2.6에서도 해봤는데 똑같은 현상이 나오네요
/dev/random 이 장치를 이용한다던데.. 리눅스들을 vmware에서 돌려서 그런가요?
#include unistd.h>
#include fcntl.h>
#include sys/stat.h>
#include sys/types.h>
#include stdlib.h>
#include stdio.h>
#include string.h>
int main()
{
int i, fd;
char key[16];
if ((fd = open("/dev/random", O_RDONLY)) == -1)
{
perror("open error");
exit(1);
}
if ((read(fd, key, 16)) == -1)
{
perror("read error");
exit(1);
}
for (i = 0; i < 16; i++)
{
printf("%c", key[i]);
}
}
Forums:
그건...
랜덤값이 ASCII 코드 값 안에서 나오지 않기 때문에 일어나는 일입니다.
printf("%d", key[i]); 정도면 원하는 값을 얻으실수 있을것 같네요.
--
from bzImage
It's blue paper
from bzImage
It's blue paper
아~ 그렇군요!
정말 좋은 답변 감사드립니다 ^^
댓글 달기