पढ़ें (2) और लिखना (2) सॉकेट डिस्क्रिप्टर के साथ-साथ फ़ाइल डिस्क्रिप्टर पर दोनों काम करता है। फ़ाइल डिस्क्रिप्टर के मामले में, उपयोगकर्ता फ़ाइल डिस्क्रिप्टर तालिका-> फ़ाइल तालिका और आखिरकार इनोड तालिका में जहां यह फ़ाइल प्रकार (नियमित फ़ाइल/char/block) के लिए जांचता है, और तदनुसार पढ़ता है। चार स्प्ल फ़ाइल के मामले में, यह चार डिवाइस स्विच से फ़ाइल की बड़ी संख्या के आधार पर फ़ंक्शन पॉइंटर्स प्राप्त करता है और डिवाइस के लिए पंजीकृत उचित पढ़ने/लिखने के दिनचर्या को कॉल करता है। ब्लॉक ब्लॉक स्विच से फ़ंक्शन पॉइंटर्स प्राप्त करके ब्लॉक विशेष फ़ाइल के लिए उचित पढ़ने/लिखने की नियमित रूप से कॉल किया जाता है।सॉकेट डिस्क्रिप्टर बनाम फ़ाइल डिस्क्रिप्टर
क्या आप कृपया मुझे बता सकते हैं कि सॉकेट डिस्क्रिप्टर पर पढ़ने/लिखने पर क्या होता है। यदि सॉकेट डिस्क्रिप्टर पर पढ़/लिखने का काम करता है, तो क्या हम वर्णनकर्ता प्राप्त करने के लिए सॉकेट के बजाय खुले उपयोग नहीं कर सकते?
आपको नहीं बता सकते हैं ** बिल्कुल ** क्या होता है (कर्नेल स्रोत पर देख रहे हैं अगर तुम सच में जानना चाहते कोशिश), लेकिन अनिवार्य रूप से यह पारित करेंगे टीसीपी चालक के लिए अनुरोध, जो नेटवर्क इंटरफेस कार्ड के लिए ड्राइवर तक पहुंचने तक नेटवर्क स्टैक को आगे बढ़ाएगा। यदि आप जानना चाहते हैं कि नेटवर्क स्टैक की प्रत्येक परत सामान्य शर्तों में क्या करती है, तो * ओएसआई मॉडल * देखें। 'ओपन' बनाम 'सॉकेट' के लिए: वे अलग-अलग तर्क लेते हैं, क्योंकि निर्दिष्ट करने की आवश्यकता वाली जानकारी अलग-अलग होती है कि आप फ़ाइल या सॉकेट खोलना चाहते हैं या नहीं। – David
मैं जानना चाहता हूं कि सॉकेट() को कॉल करने पर आवंटित डेटा संरचना क्या है, इनोड तालिका में कौन सी जानकारी संग्रहीत की जाती है, यह अंततः नेटवर्क इंटरफेस कार्ड ड्राइवर दिनचर्या को पढ़ने/लिखने पर कॉल करने के लिए कैसे पहुंचती है –
नोट सिस्टम कॉल को पढ़ने/लिखने के लिए नोट करें। अधिकांश काम कर्नेल अंतरिक्ष में किया जाता है। कि तरह का अमूर्तता, या "वर्चुअलाइजेशन": बस ब्लॉक फ़ाइल, सॉकेट, या कई अन्य चीजें, "फ़ाइल" के रूप में लें। एक फ़ाइल में पढ़ने, लिखने, खुले इत्यादि जैसे ऑपरेशन होते हैं लेकिन एक सॉकेट पढ़ने या डिस्क फ़ाइल पढ़ने का असली कार्यान्वयन कर्नेल में परिभाषित किया जाता है। यदि आपको आवश्यकता हो तो फ़ाइल से पढ़ने के लिए आप "लिखने" को भी परिभाषित कर सकते हैं। – tristan