syscall है जो लिनक्स में अप्रत्यक्ष सिस्टम कॉल की अनुमति देता है। इसका उपयोग करने के कारण क्या हैं - और यह फ़ंक्शन पर सीधे कॉल से बेहतर क्यों है?फ़ंक्शन को कॉल करने के बजाय "syscall" का उपयोग करने के क्या कारण हैं?
8
A
उत्तर
11
कभी-कभी कर्नेल सिस्टम कॉल जोड़ता है और सी पुस्तकालय के लिए उन्हें समर्थन देने में कुछ समय लगता है।
या शायद आप पुराने लिनक्स वितरण पर संकलित कर रहे हैं, लेकिन एक नए पर चलना चाहते हैं।
उदाहरण कोड:
// syscall 277 is sync_file_range() on x86_64 Linux. The header
// files lack it on scc-suse10 where we compile, but the
// performance benefits are substantial, so we just call it
// directly. FIXME someday.
#define SYNC_FILE_RANGE_WRITE 2
syscall(277, fd, done, n, SYNC_FILE_RANGE_WRITE);
लेकिन सामान्य रूप में, वहाँ syscall
का उपयोग कर यदि आपका संकलन वातावरण में सी पुस्तकालय तुम क्या आवश्यकता है के लिए कोई फायदा नहीं है। (एक बात के लिए, यह लिनक्स-विशिष्ट इंटरफ़ेस का उपयोग करने से भी कम पोर्टेबल है, क्योंकि सिस्टम कॉल नंबर CPU द्वारा भिन्न होते हैं।)
संबंधित मुद्दे
- 1. क्या एक्सएमएल के बजाय एसजीएमएल का उपयोग करने के कोई कारण हैं?
- 2. फ़ंक्शन कॉल को परिभाषित करने के लिए प्रीप्रोसेसर का उपयोग करने का नकारात्मक पक्ष क्या है?
- 3. वीबीए फ़ंक्शन कॉल में ब्रैकेट के उपयोग को नियंत्रित करने वाले नियम क्या हैं?
- 4. समकक्ष गैर स्थैतिक सदस्य फ़ंक्शन के बजाय स्थिर सदस्य फ़ंक्शन का उपयोग करने का लाभ?
- 5. जावा में "प्रिंट" के बजाय "printf" का उपयोग करने का कोई अच्छा कारण है?
- 6. टाइपकिट का उपयोग न करने के कारण?
- 7. क्या पीडी-विस्तारित के बजाय वेनिला शुद्ध डेटा का उपयोग करने का कोई कारण है?
- 8. IFrame का उपयोग न करने के कारण?
- 9. रचनाकारों के बजाय अंतर्निहित/स्पष्ट रूपांतरणों का उपयोग करने का क्या कारण है?
- 10. इस स्टेटलेस क्लास का उपयोग फ़ंक्शन कॉल ऑपरेटर बनाम सी स्टाइल फ़ंक्शन के साथ करने का कारण है?
- 11. फ़ंक्शन को बार-बार कॉल करने के लिए फ़ंक्शन?
- 12. लॉगबैक के बजाय log4j का उपयोग करने के लिए एक नई परियोजना के लिए कोई कारण?
- 13. उपयोग करने का क्या कारण है; के बजाय एफ # सूचियों में,?
- 14. क्या "pt" फ़ॉन्ट आकार इकाइयों के बजाय "em" का उपयोग करने के लिए कोई व्यावहारिक कारण हैं?
- 15. PHP के मूल गेटटेक्स्ट का उपयोग स्वयं निर्माण के विरुद्ध करने या उपयोग करने के कारण क्या हैं?
- 16. मुझे नियंत्रक कोड को सीधे कॉल करने के बजाय Ext.dispatch का उपयोग क्यों करना चाहिए?
- 17. स्क्रिप्टिंग कार्यों के लिए सी # की बजाय डीएलआर-आधारित भाषा का उपयोग करने के कारण?
- 18. 'exampleof function() {}' का उपयोग करने के पीछे कारण?
- 19. क्या System.Uri का उपयोग करने का कोई कारण है?
- 20. * फ़ंक्शन * कॉल करने के बाद * ऑनपेरेंशन चेंज?
- 21. WinForms के बजाय WPF का उपयोग शुरू करने के लिए सबसे अच्छी रीडिंग क्या हैं?
- 22. नियमित सरणी के बजाय एसपीएल ऐरेऑब्जेक्ट, ऐरेइटरेटर, रिकर्सिवएरे इटरेटर का उपयोग करने के क्या फायदे हैं?
- 23. आईआईएस के बजाय कैसिनी का उपयोग करने के (डी) फायदे क्या हैं?
- 24. सीएसएस में% के बजाय ईएमएस का उपयोग करने के क्या फायदे हैं?
- 25. कर्सर.क्लोज़() को समय-समय पर कॉल करने के अलावा StaleDataException का कारण क्या हो सकता है?
- 26. सुपरक्लास कन्स्ट्रक्टर को कॉल करने के नियम क्या हैं?
- 27. org.jboss.resteasy.client.ClientRequest के बजाय उपयोग करने के लिए क्या करें?
- 28. विंडोज़ में डॉस बैच प्रोग्राम का उपयोग करने के क्या कारण हैं?
- 29. क्या चरित्र को दोहराने के बजाय पर्ल नियमित अभिव्यक्तियों में क्वांटिफायर का उपयोग करने के लिए एक अनिवार्य कारण है?
- 30. क्या ArrayLists पर Arrays पसंद करने के कारण हैं?
उन्हें केवल ऑपरेटिंग सिस्टम कार्यान्वयन द्वारा CPU द्वारा भिन्न नहीं होना चाहिए। – Wug
@Wug: वास्तविक syscall संख्या x86, x86_64, एआरएम, पीपीसी, आदि पर भिन्न होती है – Nemo
यह ऑपरेटिंग सिस्टम कार्यान्वयन होगा। वे किसी भी तरह से सीपीयू पर निर्भर नहीं हैं, उन्हें किसी शीर्षलेख में परिभाषित किया गया है और कर्नेल में संकलित किया गया है। – Wug