在打開文件描述符fd
和其他/ dev/random的完整性檢查之後,我試圖讀取設備中可讀的字節數,所以如果我的程序需要,可以抽取這個數量。Linux:ioctl/FIONREAD返回0字節/ dev/random?
我的基本代碼是這樣的:
if (fd = open("/dev/random", O_RDONLY) < 0) {
perror("open");
return 1;
}
...
if(ioctl(fd, FIONREAD, &n) < 0) { //file descriptor, call, unsigned int
perror("ioctl");
return 1;
}
printf("%d bytes available for reading.\n", n);
return 0;
無論什麼情況下(如認爲需要的情況下,root或普通用戶),它總是返回可供讀取0字節。
我一直在suggested before這是一種方法來檢索我可以從設備中取出什麼,你知道我的程序中有什麼可能的問題或錯誤導致它總是返回零嗎?你知道任何其他方法來做我想做的事嗎?
'/ dev/urandom'是怎麼回事?試試吧 – maverik 2011-04-04 07:20:05
@Maverik,完全一樣,'0' – Alexander 2011-04-04 08:35:03