Самьюэл Алекс
Шрифт:
Этот файл удобен для проверки того, как программа будет вести себя в случае, если при записи в файл возникнет нехватка места.
6.5.4. Устройства генерирования случайных чисел
Специальные устройства
Большинство аналогичных программных функций, например функция
Чтобы получить настоящие случайные числа, необходим внешний "источник хаоса". Ядро Linux знает о таком источнике: это вы сами! Замеряя задержки между действиями пользователя, в частности нажатиями клавиш и перемещениями мыши, ядро способно генерировать непредсказуемый поток действительно случайных чисел. Получить доступ к этому потопу можно путем чтения из устройств
Разница между устройствами проявляется, когда запас случайных чисел в ядре Linux заканчивается. Если попытаться прочесть большое количество байтов из устройства
Попытайтесь, к примеру, отобразить содержимое файла
20
Мы могли бы использовать программу
Число строк в выводе команды будет разным (их может оказаться очень мало). Главное то, что, в конце концов, вывод прекратится, поскольку операционная систем исчерпает запас случайных чисел. Попробуйте теперь переместить мышь или нажать что-нибудь на клавиатуре, и вы увидите, что появляются новые случайные числа.
В противоположность этому операция чтения из устройства
Следующая команда будет выполняться до тех пор. пока пользователь не нажмет <Ctrl+C>:
Поучить доступ в программе к генератору случайных чисел несложно. В листинге 6.1 показана функция, которая генерирует случайное число, читая байты из файла