यदि आप एक बहु-थ्रेडेड एप्लिकेशन लिख रहे हैं जो सिस्टम/लाइब्रेरी कॉल का उपयोग करता है जो त्रुटि प्रकार को इंगित करने के लिए इरनो का उपयोग करता है, तो क्या इरनो का उपयोग करने का एक सुरक्षित तरीका है? यदि नहीं, तो क्या त्रुटि के प्रकार को इंगित करने का कोई अन्य तरीका है कि एक त्रुटि हुई है?क्या बहु-थ्रेडेड एप्लिकेशन में सुरक्षित रूप से त्रुटि का उपयोग करने का कोई तरीका है?
33
A
उत्तर
34
यदि आपकी मानक लाइब्रेरी मल्टीथ्रेड जागरूक है, तो संभवतः #define
है जो errno
को फ़ंक्शन कॉल में बदलता है जो थ्रेड-स्थानीय त्रुटि रिटर्न मान देता है। हालांकि, इसका उपयोग करने के लिए आप आमतौर पर में extern
घोषणा पर निर्भर होने के बजाय <errno.h>
शामिल करना चाहिए।
मुझे एक लेख Thread-safety and POSIX.1 मिला जो इस प्रश्न को संबोधित करता है।
16
man errno
का कहना है:
errno के प्रकार पूर्णांक एक परिवर्तनीय lvalue होने के लिए आईएसओ सी मानक द्वारा परिभाषित किया गया है, और स्पष्ट रूप से घोषित नहीं होना चाहिए; errno एक मैक्रो हो सकता है। errno धागा-स्थानीय है; इसे थ्रेड में सेट करने से किसी अन्य थ्रेड में इसके मान को प्रभावित नहीं करता है।
संबंधित मुद्दे
- 1. क्या सी # में अंतर्निहित रूप से एक प्रकार का निर्माण करने का कोई तरीका है?
- 2. क्या कोई ऑब्जेक्ट कुंजी ऑब्जेक्ट कुंजी के रूप में उपयोग करने का कोई तरीका है?
- 3. क्या कोई एएसपी.NET एप्लिकेशन के कस्टमरर्स को बंद करने के लिए प्रोग्रामेटिक रूप से जांचने का कोई तरीका है?
- 4. क्या जावास्क्रिप्ट में नेमस्पेसिंग करने का कोई "संक्षिप्त" तरीका है?
- 5. क्या ऐसा करने का कोई तरीका है?
- 6. scala.io.Source का उपयोग करने का सही तरीका क्या है?
- 7. क्या कोई ऑब्जेक्ट का स्मृति पता एनएसएसटींग के रूप में प्राप्त करने का कोई तरीका है?
- 8. क्या न्यूरेलिक त्रुटि को मैन्युअल रूप से धक्का देने का कोई तरीका है?
- 9. क्या मौजूदा वेबसाइटों को एंड्रॉइड ऐप के रूप में उपयोग करने का कोई तरीका है?
- 10. क्या F # में अनुक्रम में संग्रह को परिवर्तित करने का कोई सुरक्षित तरीका है?
- 11. क्या aws पर फ़ाइलों को सुरक्षित रूप से हटाने का कोई तरीका है?
- 12. निर्मित IDISposables को सुरक्षित रूप से वापस करने का सबसे अच्छा तरीका क्या है?
- 13. TypeForwardedToAttribute का उपयोग करने का सही तरीका क्या है?
- 14. क्या विंडोज़ पर सी ++ में प्रोग्रामेटिक रूप से पर्यावरण पथ सेट करने का कोई तरीका है?
- 15. क्या Mage/MageUI का उपयोग कर क्लिकऑन एप्लिकेशन मैनिफेस्ट के लिए एप्लिकेशन आइकन निर्दिष्ट करने का कोई तरीका है?
- 16. एंड्रॉइड पर स्वचालित रूप से एप्लिकेशन अपडेट करने का कोई तरीका है?
- 17. डिक्रिप्टेबल पासवर्ड स्टोर करने का सुरक्षित तरीका
- 18. क्या रजिस्ट्री का उपयोग बैकएंड के रूप में जावा के तहत java.util.Preferences का उपयोग करने का कोई तरीका है?
- 19. क्या HTML दस्तावेज़ में अनाथ शब्दों को स्वचालित रूप से नियंत्रित करने का कोई तरीका है?
- 20. क्या सबडोमेन से जेसन लोड करने का कोई तरीका है?
- 21. सी # विधियों का सीधे प्रतिनिधि के रूप में उपयोग करने का कोई तरीका है?
- 22. PowerShell में त्रुटि प्रबंधन करने का सही तरीका क्या है?
- 23. क्या टेक्स्टबॉक्स पर मैन्युअल रूप से "एंटर कुंजी" ईवेंट का आह्वान करने का कोई तरीका है?
- 24. शेल्फ में कुंजी के रूप में टुपल का उपयोग करने का कोई तरीका? (पायथन)
- 25. जावा एप्लिकेशन में सी स्रोत कोड का उपयोग करने का सबसे आसान तरीका क्या है?
- 26. क्या जावा का उपयोग करके प्रोग्रामेटिक रूप से जीमेल पासवर्ड बदलने का कोई तरीका है?
- 27. साइट पोस्ट बिल्ड को सुरक्षित रूप से प्रकाशित करने का सबसे अच्छा तरीका क्या है?
- 28. क्या एकाधिक सम्मिलन कथन का उपयोग करते हुए SCOPE_IDENTITY का उपयोग करने का कोई तरीका है?
- 29. डीएमजेड से सक्रिय निर्देशिका से कनेक्ट करने का सबसे सुरक्षित तरीका क्या है?
- 30. क्या पीईडीईवी में आरईपीएल प्राप्त करने का कोई तरीका है?
धन्यवाद! /usr/include/bits/errno.h में एक त्वरित जांच ने पुष्टि की है कि मेरी उबुंडू मशीन पर धागे का उपयोग करते समय त्रुटि वास्तव में प्रति-थ्रेड होने के लिए परिभाषित की जाती है। –