запросить из /dev/urandom

131
11 марта 2018, 23:37

Как получить беззнаковый 1 байт, знаковый 1 байт? Как получить singned long long и unsigned long long. нужно ли запрашивать по 1 байту и "докладывать"?

Какой принцип работы urandom, он хранит в себе все байты (0..255) но в случайном порядке, верно? Или от 0 до потолка 4 байт? Или от 0 до половины потолка 4 байт (как в окнах rand())? Или ещё как-то иначе? При перезапуске программы будут другие числа или те же? Если те же, то как начать сразу с N-ной итерации?

/dev/random не предлагать, интересует именно urandom.

Answer 1

Каждый байт из /dev/urandom это случайный набор из 8 бит.

Поэтому просто читайте байты в память переменной нужного вам типа.

В отличии от /dev/random в /dev/urandom всегда есть данные, поэтому можно использовать буферизированный ввод без опасения нарваться на непредсказуемо долгое ожидание ответа (например, fread(&var, sizeof(var), 1, fdev_urandom);)

READ ALSO
можно ли тело конструктора вынести за пределы прототипа класса подобно функции?

можно ли тело конструктора вынести за пределы прототипа класса подобно функции?

Имеется довольно большой конструктор и хочется его вынести за пределы определения класса оставив только прототип, подобно функции, но как...

176
предупреждение: ISO C++ says that these are ambiguous

предупреждение: ISO C++ says that these are ambiguous

Почему предупреждение у такого кода ?

152
Где можно посмотреть исходники STL C++?

Где можно посмотреть исходники STL C++?

Откуда можно посмотреть исходный код STL в C++, перерыл папку компилятора, но кроме хедеров ничего не нашел

130
Убрать отступы внутри QChartView

Убрать отступы внутри QChartView

Добрый деньИмеется виджет QChartView содержащий в себе QChart:

204