2010-04-02 15 views
13

मैं सी में प्रोग्रामिंग के लिए एक यूयूआईडी लाइब्रेरी की तलाश में हूं, जिसमें अधिकांश आधुनिक लिनक्स डेस्कटॉप पर स्थापित होने की उचित संभावना है (या कम से कम पैकेज प्रबंधक द्वारा इंस्टॉल किया जा सकता है), और pkg-config के साथ काम करता है। से e2fsprogs सी के लिए यूयूआईडी पुस्तकालय?

  • OSSP UUID
  • Libuuid किसी को भी इन दोनों के साथ अनुभव है और एक दूसरे के ऊपर, या किसी तृतीय possiblity सिफारिश कर सकते हैं:

    निम्नलिखित दो संभावनाएं सबसे स्पष्ट प्रतीत ?

उत्तर

18

मैंने दोनों का उपयोग किया, और मैं निश्चित रूप से उपयोग-लिनक्स-एनजी (पूर्व में e2fsprogs में) पसंद करता हूं। पोर्टेबिलिटी के लिए, मैं अपने सॉफ़्टवेयर का समर्थन करता हूं और ऑटोकॉन्फ़/सेमेक मैक्रोज़ का उपयोग यह पता लगाने के लिए करता हूं कि कौन सा इंस्टॉल है।

मेरे लिए ओएसएसपी के साथ मुख्य समस्या यह है कि यह किसी अच्छे कारण के लिए सी में ऑब्जेक्ट-ओरिएंटेशन का दुरुपयोग करता है। एक यूयूआईडी सिर्फ एक 128-बिट संख्या है, जिसे एक char [16] सरणी के साथ प्रदर्शित किया जा सकता है। यूयूआईडी आमतौर पर किसी अन्य संरचना से जुड़ा होता है (यूयूआईडी ऐसी संरचना के लिए एक कुंजी या पहचानकर्ता के रूप में कार्य करता है), इसलिए यह अच्छा होना चाहिए यदि आप संरचना में उस सरणी को इनलाइन कर सकते हैं।

ओएसएसपी यूयूआईडी के साथ, यह आपको एक गतिशील आवंटित ऑब्जेक्ट के लिए uuid_t* पॉइंटर देता है, जिसमें केवल यूयूआईडी मूल्य की तुलना में अधिक राज्य होता है। यदि आप हजारों वस्तुओं के साथ काम करते हैं, तो यह समझदारी से प्रोग्राम को धीमा कर देता है, अधिक मेमोरी का उपयोग करता है और अधिक स्मृति विखंडन का कारण बनता है। अंत में, ओएसएसपी यूयूआईडी उपयोग करने योग्य बनाने के लिए, आपको यूयूआईडी उत्पन्न करने के लिए इसका उपयोग करना होगा (जिसमें 4 कॉल शामिल हैं: uuid_create, uuid_make, uuid_export और uuid_destroy) और यूयूआईडी मूल्य के साथ काम करें। उपयोग-लिनक्स-एनजी के साथ, यह केवल एक ही कॉल है: uuid_generate।

+0

+1, अच्छा जवाब। –

+0

जूलियानो, क्या आप इस सेटअप के लिए उपयोग कर रहे विशिष्ट ऑटोकॉन्फ़ कॉन्फ़िगरेशन निर्देश साझा करना चाहते हैं? मैं इस समय खरोंच से बाहर निकल रहा हूं, लेकिन ऑटोटूल न्यूबी होने के नाते मैं उस चीज पर भरोसा कर रहा हूं जो पहले ही जंगली में सफलतापूर्वक उपयोग किया जा रहा है। किसी भी संकेत की सराहना की ... –

+3

@Arto: http://pastebin.com/t04f5KmP – Juliano

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