2010-04-08 27 views
18

एक बहु कार्यक्रम हम नीचे की तरह जीसीसी का उपयोग संकलन जो:_REENTRANT ध्वज क्या है?

gcc -lpthread -D_REENTRANT -o someprogram someprogram.c 

एकदम वही है जिसे झंडा -D_REENTRANT यहाँ पर कर रही है?

+0

डुप्लिकेट: http://stackoverflow.com/questions/875789/gcc-do-i-need-d-reentr चींटी-साथ-pthreads –

+5

यह वास्तव में एक डुप्लिकेट नहीं है। लिंक किया गया सवाल यह पूछ रहा था कि -D_REENTRANT गुजरने के दौरान अनावश्यक है या नहीं; यह सवाल पूछता है कि क्या प्रभाव -D_REENTRANT है (चाहे स्पष्ट रूप से पारित किया गया हो या -फथ्रेड द्वारा निहित)। –

उत्तर

1

यह प्रीप्रोसेसर के लिए बस _REENTRANT परिभाषित किया गया। कहीं भी संबंधित कोड में, आपको शायद कम से कम कुछ स्थानों में #ifdef _REENTRANT या #if defined(_REENTRANT) मिल जाएगा।

यह भी ध्यान दें कि नाम "_REENTRANT: कार्यान्वयनकर्ता का नाम स्थान (अंडरस्कोर के साथ शुरू होने वाला कोई नाम किसी अन्य अंडरस्कोर या पूंजी पत्र के बाद शुरू होता है) है, इसलिए इसका मतलब यह है कि आपने मानक परिभाषित करने के बाहर कदम उठाया है (कम से कम सी या सी ++ मानक)।

+0

क्या आप अधिक विशिष्ट हो सकते हैं। एक उदाहरण मुझे बेहतर समझने में मदद करेगा। – Vijay

19

डिफाइनिंग _REENTRANT संकलक धागा सुरक्षित (यानी फिर से प्रवेशी) सी पुस्तकालय में कई कार्यों के संस्करण का उपयोग करें का कारण बनता है।

आप क्या देखने के लिए अपने हेडर फाइल को खोज सकते हैं यह परिभाषित होने पर होता है।

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