[英]Which *_cast should I use to cast an arbitrary integer-type pointer to a char pointer?
我需要用/ dev / urandom中的數據填充一個整數類型的變量(任意大小)。 考慮到這一點,我有以下代碼:
std::fstream fstr("/dev/urandom", std::fstream::in | std::fstream::binary);
fstr.read(reinterpret_cast<char*>(&randomseed), sizeof(randomseed));
fstr.close();
( randomseed是我需要用隨機數據填充的變量)。
這會做正確的事情(即,無論使用何種庫實現都是安全的),還是應該使用其他* _cast?
不安全 僅保證char
類型沒有陷阱表示。
“適當”的解決方案是將/dev/urandom
包裝在C ++ <random>
引擎中,並使用std::uniform_int_distribution
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.