2012-11-14 24 views
9

मैं यूनिक्स में नेटवर्क प्रोग्रामिंग के बारे में सीख रहा हूं और वर्तमान में सॉकेट और फ़ाइल डिस्क्रिप्टर की अवधारणा को समझने की कोशिश कर रहा हूं। जो मैंने फ़ाइल डिस्क्रिप्टर को समझा है, वह पॉइंटर्स (फ़ाइल डिस्क्रिप्टर टेबल?) की एक सरणी में बस एक स्थिति है और ये पॉइंटर्स स्मृति में कहीं भी फ़ाइल को इंगित करते हैं।सॉकेट और फ़ाइल डिस्क्रिप्टर

क्या सॉकेट डिस्क्रिप्टर फ़ाइल सरणीकरण के साथ इस सरणी को साझा करते हैं, लेकिन पॉइंटर इसके बजाय सॉकेट को संदर्भित करता है। या क्या कुछ और है जो केवल सॉकेट के लिए उपयोग किया जाता है?

क्या यह सरणी प्रत्येक एप्लिकेशन/प्रक्रिया के लिए अद्वितीय है?

उत्तर

10

हां, सॉकेट भी फाइलों के समान तालिका में इंडेक्स होते हैं। कम से कम यूनिक्स सिस्टम (जैसे लिनक्स और ओएसएक्स) के लिए, विंडोज अलग है, यही कारण है कि आप उदा। डेटा प्राप्त करने और भेजने के लिए read और write

प्रत्येक प्रक्रिया की अपनी "फ़ाइल" वर्णनकर्ता तालिका होती है।

+0

क्या फाइल डिस्क्रिप्टर की मेरी व्याख्या अन्यथा सही है और क्या आप कह सकते हैं कि फाइल डिस्क्रिप्टर टेबल कुछ प्रकार का बहुरूपता है? – Carlj901

+0

@ कार्लज 9 01 हां, तरह का। फ़ाइल डिस्क्रिप्टर (जैसा कि 'ओपन' या 'सॉकेट' द्वारा लौटाया गया है) इस तालिका या सूचक में एक सूचकांक है, फिर यह पॉइंटर अलग-अलग संरचनाओं को इंगित कर सकता है कि यह फ़ाइल या सॉकेट है या नहीं। –

1

सॉकेट यूनिक्स ऑपरेटिंग सिस्टम में एक फ़ाइल के अलावा कुछ भी नहीं है। यूनिक्स ऑपरेटिंग सिस्टम में भी सबकुछ एक फाइल के रूप में माना जाता है। जब भी हम सॉकेट बनाते हैं तो फ़ाइल डिस्क्रिप्टर तालिका में एक प्रविष्टि बनाई जाती है जिसमें मानक I/O और मानक त्रुटियां और अन्य विवरण होते हैं। फ़ाइल डिस्क्रिप्टर फ़ाइल तालिका में पॉइंटर के रूप में कार्य करता है जिसमें इस बारे में जानकारी होती है कि कौन सी कार्रवाई की जानी है यानी पढ़ना, लिखना, आदि, और इसमें उस विशेष फ़ाइल की इनोड तालिका में पॉइंटर्स शामिल हैं और जैसा कि आप जानते हैं कि इनोड में सभी आवश्यक हैं एक फ़ाइल के deatils।

+0

क्या यूनिक्स में कभी भी फाइल के रूप में व्यवहार किया जाता है? सभी प्रक्रियाओं की तरह? सॉकेट फ़ाइल कैसे दिखती है या इसमें क्या है? –

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

  • कोई संबंधित समस्या नहीं^_^