После открытия дескриптора файла fd
и других проверок работоспособности для / 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;
Независимо от того, какой сценарий (в качестве обычного или обычного пользователя в случае необходимости) он всегда возвращает 0 байтов, доступных для чтения.
До мне предлагалось *1000* предположить, что это метод для извлечения того, что я могу извлечь из устройства. Знаете ли вы, какие возможные проблемы или сбои в моей программе приводят к тому, что оно всегда возвращает ноль?Знаете ли вы какие-либо другие способы сделать то, что я хочу сделать?