2008-09-30 15 views
7

मुझे इस लिनक्स ऐप को चलाने वाले सर्वरों का एक समूह मिला है। मैं चाहता हूं कि वे टकराव की कम संभावना के साथ एक GUID उत्पन्न करने में सक्षम हों। मुझे यकीन है कि मैं सिर्फ 128 बाइट्स को/dev/urandom से खींच सकता हूं और शायद यह ठीक होगा, लेकिन क्या एक सरल & एक GUID उत्पन्न करने का आसान तरीका है जो Win32 एक के बराबर है? विशेष रूप से, एक खाता स्थान (अच्छी तरह से, मैक पता), समय, और यादृच्छिकता में लेता है? मैं इसके लिए बॉक्स बंद कॉल करने के लिए नहीं करना चाहते हैं, मैं सिर्फ चाहते हैं की तरह CreateGuid()सी ++ लिनक्स जीसीसी ऐप में GUIDs

उत्तर

10

यह Internet Draft महान विवरण में एक प्रकार का यूयूआईडी का वर्णन करता है और मैंने यूयूआईडी कार्यान्वयन की आवश्यकता होने पर बड़ी सफलता के साथ एक समान दृष्टिकोण का उपयोग किया है और वास्तुशिल्प कारणों से मौजूदा पुस्तकालय से लिंक नहीं कर सका।

यह article एक अच्छा अवलोकन प्रदान करता है।

+3

कि दूसरी कड़ी को देख से, मैं libuuid पाया (http://linux.die.net/man/3/libuuid) है, जो होने के लिए मैं वास्तव में क्या जरूरत है लगता है। धन्यवाद! – twk

+0

मुझे खुशी है कि मैं मदद करने में सक्षम था। –

2

यहाँ देखो कुछ: GUID Behind the Scenes

पी.एस. यह एक डुप्लिकेट प्रश्न नहीं है - सबसे अच्छा जवाब सार्वजनिक रूप से उपलब्ध स्रोत को इंगित करेगा।

2

आप कुछ का उपयोग करने जा रहे हैं तो एक इंटरनेट मानक एक अच्छा विचार होगा: आरएफसी (टिप्पणी के लिए अनुरोध)
चेक बाहर।

एक मुझे पता है कि GUID के लिए विशिष्ट है है: RFC 4122

8

वहाँ libuuid है।

+3

यह आश्चर्यजनक होगा कि गैर-एलजीपीएल (और गैर-जीपीएल) लाइब्रेरी थी। –

+2

@jeffamaphone: लिनक्स सी ++ को लक्षित करते समय आप एलजीपीएल पुस्तकालयों की परवाह क्यों करते हैं? सी ++ मानक पुस्तकालय एलजीपीएल है। – Joshua

संबंधित मुद्दे