ডিরেক্টরিগুলি কখন ফাইল হিসাবে পঠনযোগ্য হওয়া বন্ধ করে দেয়?


29

আমার কাছে দ্য ইউনিক্স প্রোগ্রামিং পরিবেশ বইয়ের প্রথম সংস্করণ রয়েছে। দ্বিতীয় অধ্যায়ে, লেখকরা নির্দেশ দিয়েছেন যে ডিরেক্টরিগুলি ফাইল হিসাবে পঠনযোগ্য এবং এই ফাইলগুলির ফর্ম্যাট সম্পর্কে কিছু তথ্য উল্লেখ করে। তারা কিছু ব্যবহারের উদাহরণ দেয় যেমন cat .(অনুশীলন 2-2)।

কমপক্ষে ডারউইনে, ডিরেক্টরিগুলি ফাইল হিসাবে আর পঠনযোগ্য নয়। কমপক্ষে, পড়ার সময় এগুলি শূন্য দৈর্ঘ্যের ফাইল হিসাবে উপস্থিত হয়।

এই পরিবর্তনটি কখন ঘটেছিল এবং এটি সম্পর্কে কোনও অফিসিয়াল ডকুমেন্টেশন নেই?


1
আমার মনে আছে এটি সূর্য সোলারিসে 1991 সেপ -১৯৯৫ জুন কিছু সময় কাজ করেছিল। আমি মনে করি এটি সময়ের জন্য কোথাও আমার জন্য কাজ করা বন্ধ করে দিয়েছে। যখন আমরা সিস্টেম ভি দিয়ে স্পার্ক মেশিনগুলিতে আপগ্রেড করেছি (ভাল করে মনে করতে পারে না)। এটি সম্ভবত ফাইল-সিস্টেমের উপর নির্ভর করে। যদি ফাইল-সিস্টেম সঠিকভাবে বর্ণিত ডেটা সংরক্ষণ না করে তবে কোনও সামঞ্জস্যের স্তরটি যুক্ত না করা হলে এটি ভেঙে যাবে। এছাড়াও আজ দেবিয়ান গ্নু + লিনাক্স ব্যবহার করে কাজ করে না।
ctrl-alt-delor

1
আমি জানি যে ফাইল হিসাবে একটি ডিরেক্টরি পড়া 90 এর দশকের শেষভাগে - ইউনিক্স সিস্টেম ভি এর অধীনে 90 এর দশকের প্রথম দিকে কাজ করে। এটি সুনোস-এর অধীনে কাজ করেছিল। এটি ইরিক্সের কয়েকটি সংস্করণে কাজ করেছে worked আমি মনে করি ভার্চুয়াল ফাইল সিস্টেমে যাওয়া এবং অনেকগুলি অন্তর্নিহিত ডিস্ক সংস্থাগুলিকে মঞ্জুরি দেওয়ার অর্থ এই যে আপনি সত্যিকার অর্থে দক্ষতার সাথে এটি সমর্থন করতে পারবেন না।
ব্রুস এডিগার

8
আরও (অননুমোদিত) তথ্য এখানে পাওয়া যাবে: utcc.utoronto.ca/~cks/space/blog/unix/RadadirHistory
ক্যাম

আমি এআইএক্স এবং সোলারিস পরীক্ষা করেছিলাম - সত্যই, এআইএক্সে আপনি এখনও cat .সোলারিস 11 এ থাকতে পারেন (লিনাক্সের মতো) আপনি পারবেন না। কুল।
gena2x

উত্তর:


13

সর্বশেষ POSIX নির্দিষ্টকরণ (POSIX.1-2008) এর ত্রুটি নম্বর উল্লেখ

[EISDIR]

একটি নির্দেশিকা. লেখার মোড নির্দিষ্ট করে একটি ডিরেক্টরি খোলার চেষ্টা করা হয়েছিল।

এর অর্থ হ'ল, পসিক্স কমপ্লায়েন্ট ওএস-এ আপনি কোনও ডিরেক্টরি পড়তে সক্ষম হন () যদি আপনি কেবল এটি পড়ে (ও_আরডোনলি) পড়ে থাকেন।

আমি এটি একটি নেটবিএসডি (যা সত্যিই পসিক্স সম্পর্কে যত্নশীল) বাক্সে চেষ্টা করেছি এবং প্রত্যাশার মতো কাজ করে, যখন এটি জিআইইউ / লিনাক্সে আইআইএসডিআইআর-এর সাথে ব্যর্থ হয় (যা হওয়া উচিত নয়)।

লিনাক্সের একটি তাত্ক্ষণিক দৃষ্টিভঙ্গি এটিকে উদ্দেশ্য করে দেখায় ( http://lxr.free-electrons.com/source/fs/libfs.c#L189 ):

ssize_t generic_read_dir(struct file *filp, char __user *buf, size_t siz, loff_t *ppos)
{
        return -EISDIR;
}

যখন একটি কংক্রিট ফাইল সিস্টেম বাস্তবায়ন এটিকে ওভাররাইড করতে পারে (যেমন সিইপিএইচ করে: http://lxr.free-electrons.com/source/fs/ceph/dir.c#L1142 ), ডিফল্ট আচরণটি যখনই কেউ চেষ্টা করছে তখনই আইআইএসডিআইআর ফিরিয়ে আনা হয়) একটি ডিরেক্টরি পড়ুন, এমনকি যদি এটি কেবল পঠনযোগ্য হয়।

আমি এই পরিবর্তনটি 2.0.x এ ফিরে পেয়েছি এবং কমপক্ষে এক্স 2 ফাইল সিস্টেমের ক্ষেত্রে এখনও এটি ছিল।

সুতরাং, হ্যাঁ, একটি পসিক্স কমপ্লায়েন্ট ওএসে আপনাকে একটি ডিরেক্টরি পড়তে পারা উচিত, তবে কিছু কার্নেল (যেমন লিনাক্স এবং, সম্ভবত অন্যরা) কেবল এই শর্তটিকে উপেক্ষা করে মানটি ভঙ্গ করে।


6
ওপেন গ্রুপ অনুসারে, লিনাক্সের আচরণ এখানে XSI এক্সটেনশনের মান অনুসারে বৈধreaddir(2)আরও বহনযোগ্য। এটি আমার কাছে ওপি-র প্রশ্নের সঠিক উত্তরটি পরামর্শ দেয় "যখন এক্সএসআই জনপ্রিয় হয়েছিল sugges"
কেভিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.