Чтобы быть в безопасности, я бы не предполагал, что полное чтение гарантировано, а вместо этого читал бы повторно, пока у вас не будет столько данных, сколько вам нужно.Вы никогда не знаете, когда какая-то реализация решит, что короткие чтения из /dev/urandom
в порядке.