के दौरान ओएस निर्धारित करें न तो आईएसओ सी और न ही POSIX रनटाइम के दौरान अंतर्निहित ओएस निर्धारित करने के लिए कार्यक्षमता प्रदान करते हैं। सैद्धांतिक दृष्टिकोण से, इससे कोई फर्क नहीं पड़ता क्योंकि सी सबसे आम सिस्टम कॉल के लिए सी प्रदान करता है, और नाइट-पिकिंग पॉइंट व्यू से, एक अंतर्निहित ओएस भी नहीं है।रनटाइम
हालांकि, कई वास्तविक दुनिया परिदृश्यों में, सी मेजबान पर्यावरण के बारे में और जानना उपयोगी साबित हुआ है, सी साझा करने के इच्छुक है, उदाहरण के लिए कॉन्फ़िगरेशन फ़ाइलों को स्टोर करने के लिए या select()
पर कॉल करने के तरीके को जानने के लिए, 0:
क्या रनटाइम के दौरान अंतर्निहित ओएस निर्धारित करने के लिए सी में लिखे गए किसी एप्लिकेशन के लिए एक बेवकूफ तरीका है?
कम से कम, क्या मैं आसानी से लिनक्स, विंडोज, बीएसडी और मैकोज़ के बीच निर्णय ले सकता हूं?
मेरा वर्तमान अनुमान कुछ फ़ाइलों/निर्देशिकाओं जैसे C:\
या /
के अस्तित्व की जांच करना है, लेकिन यह दृष्टिकोण अविश्वसनीय लगता है। हो सकता है कि ऐसे स्रोतों की एक श्रृंखला से पूछताछ से "ओएस फिंगरप्रिंट" की धारणा स्थापित करने में मदद मिल सके, इस प्रकार विश्वसनीयता बढ़ रही है। वैसे भी, मैं आपके सुझावों की प्रतीक्षा कर रहा हूं।
एर, आप संकलन समय –
पर इस जानकारी कैसे पर * क्रम * मदद ओएस का निर्धारण करता है पता है कि तुम एक 'चयन()' कॉल सही ढंग से लिखें? –
+1, @ डेविड। कम से कम लिनक्स बनाम विंडोज बनाम मैक ओएस एक्स, आदि जैसे मतभेदों के लिए मुझे लगता है कि उनमें से प्रत्येक के विभिन्न संस्करणों के बीच अंतर करने के लिए एक रनटाइम तरीका हो सकता है जो ओपी की तलाश में हो, लेकिन इसका उत्तर प्रत्येक के लिए विशिष्ट होगा ऑपरेटिंग सिस्टम, संभवतः। –