यह कोड है:पढ़ रहा है/dev/urandom थ्रेड-सुरक्षित है?
unsigned int number;
FILE* urandom = fopen("/dev/urandom", "r");
if (urandom) {
size_t bytes_read = fread(&number, 1, sizeof(number), urandom);
DCHECK(bytes_read == sizeof(number));
fclose(urandom);
} else {
NOTREACHED();
}
यदि नहीं, तो मैं इसे थ्रेड-सुरक्षित कैसे बना सकता हूं?
जाहिर है यह, यह सुरक्षित है विवेक की खातिर चाहिए, लेकिन मैं आदमी 4 यादृच्छिक कि निर्दिष्ट करता है कि में कुछ भी नहीं मिल सकता है। उदाहरण के लिए यदि यूरेनैंड पीआरएनजी मोड में वापस आ गया है, तो क्या दो एक साथ कॉलर कभी भी मौके के अलावा एक ही आउटपुट देख सकते हैं? निश्चित रूप से नहीं, लेकिन दस्तावेज़ कहां नहीं कहते हैं? –
"एक ही उत्पादन देखकर" "यादृच्छिक" का एक विशेष मामला है। :-) –
@SteveJessop: प्रलेखन कि इंटरफ़ेस काम करता है कहने के लिए की जरूरत नहीं है। इसके अलावा, urandom केवल एक मोड है। –