প্রতিটি সকেট প্রতি ফাইল কোথায় এবং কোথায়?
"সবকিছু" একটি অতিরঞ্জিত। এটি কোনও কঠোর নীতি নয়, ইন্টারফেসের জন্য ফাইল সিস্টেমটি ব্যবহার করা কেবল একটি সাধারণ অভ্যাস, যেহেতু ফাইল সিস্টেমের অ্যাক্সেস সিস্টেম কলগুলির সমার্থক (যেমন, ফাইল সিস্টেমটি সত্যিকার অর্থে কার্নেলের সাথে একটি ইন্টারফেস, এবং তাই সব ধরণের জিনিসগুলির জন্য একটি সুবিধাজনক বিন্যাস সরবরাহ করে) । অন্যান্য অপারেটিং সিস্টেমগুলি এটির যতটা ব্যবহার করে না তাই এটি একটি বিশিষ্ট বৈশিষ্ট্য হিসাবে বিবেচনা করা হয়।
হউক লেজিংয়ের উল্লেখ অনুসারে, "ইউনিক্স স্থানীয়" সকেটের নামযুক্ত পাইপগুলির মতো ফাইল নোড রয়েছে (দেখুন man fifo
)। তবে, ইন্টারনেট প্রোটোকল সকেট (নেটওয়ার্ক যোগাযোগের জন্য ব্যবহৃত) তা করে না। পরিবর্তে, তারা ইউজার স্পেসে একটি বন্দর নম্বর যুক্ত। মনে রাখবেন যে একটি একক বন্দরের একটি সার্ভার সকেট একাধিক ক্লায়েন্টকে তাদের নিজস্ব সকেটের সাথে সংযুক্ত করে (একক ইউনিক্স স্থানীয় সকেট ফাইলটি এইভাবে সার্ভারের সাহায্যে ব্যবহার করা যেতে পারে, অর্থাত, একই ফাইলের ঠিকানার সাথে একাধিক সকেট যুক্ত থাকতে পারে) এবং কোডে এগুলি পৃথক পৃথক সংখ্যাসূচক ফাইল বর্ণনাকারীর মাধ্যমে স্বতন্ত্রভাবে চিহ্নিত করা হয় ।
সুতরাং, যে অর্থে সব সকেট হয় ফাইলের মত অনেক, এবং একটি লিঙ্ক আছে /proc/[pid]/fd/
। এমনকি আপনি readlink()
এই ইনোডটিতে কল করতে পারেন এবং একটি বিশেষ ধরণের ফাইল নাম পেতে পারেন যা কমান্ড লাইন সরঞ্জামগুলিতে ব্যবহৃত হয় lsof
, যেমন আমি বিশ্বাস করি; একইভাবে আপনি সকেট বর্ণনাকারী সম্পর্কে তথ্য পেতে পারেন fstat()
।