6

कुछ दिन पहले, एक साक्षात्कार में एक सवाल के रूप में,फ़ंक्शन कॉलबैक और इंटरप्रोसेस संचार समान हैं?

Are function callback in C and interprocess communication are same? 

मुझे करने को कहा गया है कि मैं question.Because मैं एक दुविधा में था में थोड़ा तटस्थ था। आईपीसी में हम अंत में संसाधित करने के लिए प्रक्रिया के बीच संवाद करते हैं यदि हम देखेंगे कि प्रक्रिया कुछ भी नहीं बल्कि एक कार्य है। यहां एक फ़ंक्शन अन्य फ़ंक्शन को कॉल करता है। फ़ंक्शन कॉलबैक में हम function pointer फिर से उपयोग करते हैं कि एक फ़ंक्शन पता के साथ अन्य फ़ंक्शन को कॉल करता है। तो बस जानना चाहता था कि वे पूरी तरह से समान नहीं हैं, तो क्या अंतर है?

उत्तर

10

नहीं, वास्तव में नहीं।

फ़ंक्शन कॉलबैक फ़ंक्शन के पते (या कुछ अन्य पहचानकर्ता) को किसी अन्य फ़ंक्शन पर पास कर रहा है ताकि वह किसी कारण से वापस कॉल कर सके।

क्लासिक उदाहरण सी मानक लाइब्रेरी qsort फ़ंक्शन है। तुलनात्मक फ़ंक्शन के साथ आप सरणी (और इसके आकार) में पॉइंटर में गुजरते हैं। qsort फ़ंक्शन उस तुलना फ़ंक्शन (कॉलबैक) का उपयोग यह तय करने के लिए करता है कि सूची में से कौन से दो तत्व अधिक हैं ताकि यह उन्हें क्रम में व्यवस्थित कर सके।

दूसरी ओर, आईपीसी एक दूसरे के साथ संवाद करने के लिए प्रक्रियाओं का माध्यम है, जैसे साझा स्मृति, पाइप, सेमफोर और इसी तरह।

कुछ आईपीसी तंत्र कॉलबैक का उपयोग कर सकते हैं लेकिन इसका कोई मतलब नहीं है। उदाहरण के लिए, सॉकेट कॉलबैक का उपयोग नहीं करते हैं, वे बस उपयोगकर्ता को read और write पर कॉल करने की अनुमति देते हैं।

इसी प्रकार साझा स्मृति के साथ, आप मेमोरी ब्लॉक से संलग्न होते हैं और उन्हें "नियमित" स्मृति के समान ही एक्सेस करते हैं, यह केवल उस स्मृति से जुड़ी सभी प्रक्रियाओं में प्रभाव महसूस होता है।

एक उपयोग कॉलबैक का प्रकार ओएनसी आरपीसी (या सूर्य आरपीसी) है। यह एक सर्वर चलाता है जो नेटवर्क पर क्लाइंट कॉल का इंतजार करता है और उन्हें पूर्व-कॉन्फ़िगर किए गए क्लाइंट फ़ंक्शन पर भेजता है। अधिक जानकारी here मिल सकती है।

लेकिन फिर भी, मैं इसे कॉलबैक कहने में संकोच करता हूं क्योंकि यह वास्तव में संकलन समय पर कॉन्फ़िगर किया गया है। रन-टाइम पर "उचित" कॉलबैक किए जाते हैं।

+1

+1 सादगी और समझ में –

+0

@paxdiablo: फ़ंक्शन कॉलबैक: - कुछ कारणों का मतलब कुछ डेटा प्राप्त करना है ... तो हम सॉकेट या पाइप का उपयोग करके आईपीसी से प्राप्त कर रहे हैं और सभी –

+0

"कुछ आईपीसी तंत्र कॉलबैक का उपयोग कर सकते हैं लेकिन इसका कोई मतलब नहीं है।" - अगर यह विस्तृत किया जा सकता है तो यह अच्छा होगा। – Jay

6

फ़ंक्शन कॉलबैक का अर्थ है कॉलर और कैली एक ही थ्रेड में हैं। आईपीसी विभिन्न प्रक्रियाओं में है। एक प्रक्रिया में एक या अधिक धागे शामिल हैं। Ergo, कॉलबैक आईपीसी नहीं हैं।

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