2010-10-05 13 views
6

क्या कोई सी लाइब्रेरी ऑपरेशन के लिए उपलब्ध है जैसे फाइल ऑपरेशंस, सिस्टम जानकारी प्राप्त करना और जेनेरिक, जो विभिन्न प्लेटफॉर्म में संकलित होने पर उपयोग किया जा सकता है और जो इसी तरह से व्यवहार करता है?ऑपरेटिंग सिस्टम अज्ञेय सी पुस्तकालय

संपादित करें: हार्डवेयर या अमूर्त प्लेटफ़ॉर्म जैसे कुछ हार्डवेयर को सारणीबद्ध करना।

उत्तर

4

हां; आईएसओ मानक सी पुस्तकालय। इसमें आपकी इच्छित सभी कार्यक्षमताओं को शामिल नहीं किया जा सकता है, लेकिन यह ठीक है क्योंकि यह सामान्य है, और ऐसे में निम्नतम सामान्य denominator भी है। यह केवल उन सुविधाओं का समर्थन करता है जो पर हार्डवेयर पर एम्बेडेड सिस्टम सहित उचित रूप से मौजूद होने की उम्मीद कर सकते हैं।

इस तक पहुंचने का तरीका संभवतः लक्षित प्लेटफार्मों की श्रेणी निर्दिष्ट करना है, और फिर एप्लिकेशन डोमेन (जैसे जीयूआई, नेटवर्किंग, बहु-थ्रेडिंग, छवि प्रसंस्करण, फ़ाइल हैंडलिंग इत्यादि), और फिर चयन करें व्यक्तिगत क्रॉस-प्लेटफार्म पुस्तकालय जो आपकी आवश्यकताओं के अनुरूप हैं। आपकी सभी जरूरतों को पूरा करने के लिए शायद कोई पुस्तकालय नहीं है, और कुछ मामलों में कोई सामान्य पुस्तकालय नहीं है।

उस ने कहा, आप सी ++ को गले लगाकर इस संबंध में हमेशा बेहतर सेवा करेंगे जहां आप किसी भी सी पुस्तकालय के साथ-साथ सी ++ पुस्तकालयों का उपयोग कर सकते हैं। न केवल सी ++ मानक पुस्तकालय बड़ा है, लेकिन बूस्ट, WxWidgets, ACE जैसे पुस्तकालय भी एक व्यापक डोमेन स्पेक्ट्रम को कवर करते हैं। एक अन्य दृष्टिकोण जावा जैसे क्रॉस-प्लेटफ़ॉर्म भाषा का उपयोग करना है, जो हार्डवेयर को वर्चुअल मशीन पर सारणित करके समस्या हल करता है। इसी तरह .NET/मोनो और सी # लक्षित प्लेटफ़ॉर्म के उपयुक्त सीमित सेट के लिए समाधान प्रदान कर सकते हैं।

जोड़ा निम्नलिखित टिप्पणी: एक वास्तविक मशीन लक्षित भाषा (जैसे जावा या CLR आधारित भाषाओं के रूप में एक वीएम भाषा के खिलाफ) ऑपरेटिंग सिस्टम द्वारा प्रदान की जाती है में हार्डवेयर मतिहीनता, तो क्या आप शायद जरूरत है एक आम बात है ऑपरेटिंग सिस्टम एपीआई। पीओएसआईक्स शायद सबसे निकटतम है जो आपको मिलेगा, लिनक्स, यूनिक्स, ओएसएक्स (जो यूनिक्स है), क्यूएनएक्स, वीएक्सवर्क्स, बीओएस और कई अन्य लोगों पर समर्थित है; लेकिन महत्वपूर्ण रूप से विंडोज़ नहीं। विंडोज़ पर पीओएसआईक्स का उपयोग करने का एक तरीका सिगविन का उपयोग करना है। लिनक्स जैसे पॉज़िक्स ओएस को होस्ट करने के लिए एक और वीएम का उपयोग करना है।

+0

बिल्कुल! मैं कुछ क्रॉस प्लेटफार्म लाइब्रेरी की तलाश में था जो हार्डवेयर को सारणकर जावा और सी # के समान काम करता है .. मुझे अपना प्रश्न भी संपादित करने दें। एपीआर की सिफारिश के लिए – bdhar

10

क्या आपने मानक लाइब्रेरी की कोशिश की है? इसे किसी भी सिस्टम पर लागू किया जाना चाहिए जिसमें आईएसओ अनुपालन सी रनटाइम हो।

1

मानक लाइब्रेरी में जो कुछ भी नहीं मिला, उसके लिए जीएलआईबी अन्य पुस्तकालयों के साथ देखने के लिए एक अच्छी पहली जगह है। यह उदाहरण थ्रेड, म्यूटेक्स और आईपीसी के लिए प्रदान करता है कि आप सादे मानक पुस्तकालयों का उपयोग करके पोर्टेबल रूप से लिखने में सक्षम नहीं होंगे, और आप जीटीके + में पूर्ण जीयूआई तक समान सम्मेलनों का पालन करने वाले कई और जीएनयू पुस्तकालयों का उपयोग कर सकते हैं। जीएलआईबी सामान्य लोकप्रिय ऑपरेटिंग सिस्टम का समर्थन करता है।

0

यदि सी मानक लाइब्रेरी आपकी आवश्यकताओं के लिए पर्याप्त नहीं है, तो POSIX का एक न्यूनतम हाइपरपोर्टेबल सबसेट वह लक्ष्य हो सकता है जिसे आप कोड करना चाहते हैं। आदि का दस्तावेजीकरण वास्तव में क्या एक "POSIX के hyperportable सबसेट open, read, write,

- उदाहरण के लिए, मुख्य गैर POSIX ऑपरेटिंग सिस्टम विंडोज अभी भी एक है जो काफी बारीकी से व्यवहार करते हैं POSIX कार्य के रूप में एक ही नाम के साथ कार्यों की संख्या है "शामिल है, और जो गैर-पॉज़िक्स ऑपरेटिंग सिस्टम इस तरह के सबसेट के अनुरूप होंगे, एक मामूली मुश्किल काम है, जो" MyCompanyName पोर्टेबल रनटाइम "उत्पादों के प्लेग से बचने के लिए स्वयं में और अपने आप में काफी उपयोगी होगा बार-बार हर कुछ साल और अनावश्यक रूप से फ़ायरफ़ॉक्स और अपाचे जैसे लोकप्रिय सॉफ़्टवेयर को फहराते हैं।

0

आप क्या मानक सी पुस्तकालय प्रदान करता है परे सुविधाओं की जरूरत है, (APR) पर एक नज़र डालें। आपको यह भी समीक्षा करनी चाहिए कि क्या POSIX आपके द्वारा की जाने वाली कार्यक्षमता प्रदान करता है, हालांकि यह अपने स्वयं के बैग के साथ आता है। , हालांकि मैं उनमें से किसी का उपयोग नहीं किया गया है मन में जीटीके, GLib और क्यूटी वसंत -

आप ग्राफिक्स और की तरह में प्राप्त करना चाहते हैं, तो आप एक अलग दुनिया में कर रहे हैं।

+0

-1। यह '/ dev/null' में है। एपीआर का उपयोग करके मैंने जो कार्यक्रम देखा है (एसवीएन दिमाग में आता है) कोड की सैकड़ों लाइनों (संभव आवंटन विफलताओं जैसे संभावित विफलता स्थितियों के साथ पैक) एक एकल 'printf' कॉल के बराबर प्रदर्शन करते हैं) खर्च करते हैं। यदि आप उस तरह के बेकार ओवरहेड चाहते हैं तो आपको सी ++ और एसटीएल का उपयोग करना चाहिए। –

+0

@ आर ..: आप एपीआर के बारे में सही हो सकते हैं लेकिन इसका उपयोग कर सी ++ और एसटीएल में एक सस्ता और बीमार सूचित शॉट अनावश्यक है। – Clifford

+0

कम से कम C++ अपवाद हैंडलिंग और विफलता सफाई एक बहुत आसान बना देता है, लेकिन मुझे नहीं लगता कि आप का तर्क कर सकते हैं कि सी ++ और एसटीएल का उपयोग कर कि तुच्छ संचालन जो पूरी तरह से पर निष्पादित किया जा सकता करने के लिए विफल हो सकता है अनावश्यक आवंटन संचालन का एक बहुत परिचय नहीं करता है कोई आवंटन के साथ ढेर और विफलता का कोई मौका नहीं। –

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