স্ট্যান্ডার্ড আই / ও ফাইল বর্ণনাকারী


1

আমি এই কোড

$ ls -l 1> stdout.txt

এবং আমি আউটপুটটি পছন্দসইভাবে পেয়েছি,

1> stdout.txt

স্ট্যান্ডার্ড আউটপুট থেকে স্ট্যান্ডার্ড আউটপুট থেকে আউটপুটটিকে পুনঃনির্দেশ করে।

আমি ডিস্কে বিদ্যমান এমন কোনও ফাইল দেখতে পাচ্ছি না। কোন ধরণের ফাইল সিস্টেম এই জাতীয় ফাইলগুলিকে সমর্থন করে, এটি কি রামফস ?

এর কি প্রোফস এবং সিএসএফসের সাথে কোনও মিল আছে ?


1
কোন ধরণের ফাইল সিস্টেম ব্যবহার হচ্ছে তা বিবেচ্য নয়। আপনি যদি 1> stdout.txt(বা, আরও সাধারণভাবে, ন্যায়সঙ্গত > stdout.txt) ব্যবহার stdout.txtকরেন তবে আপনার বর্তমান ডিরেক্টরিতে একটি ফাইল পাওয়া উচিত । যদি বর্তমান ডিরেক্টরিটি ফাইলটি খুলতে না পারে (অনুমতি সমস্যা বা অন্য কোনও ত্রুটি), আপনার এ সম্পর্কে অবহিত করে একটি ত্রুটি বার্তা পাওয়া উচিত।
সেলেদা

আমার প্রশ্নটি ছিল, স্টাডআউট, স্টিডিন আমাদের কোন ধরণের ফাইল সিস্টেম রয়েছে। তাদের কাছে ফাইল বর্ণনাকারী আছে, তাই তারা ফাইল আছে, তাই না? আমি লাইনের কিছু আশা করেছিলাম জন্য procfs এবং সেটির sysfs বা কিছু অন্য ধরনের psuedo FS
ArunMKumar

1
stdin, stdout এবং stderr ফাইল নয়, ফাইল বর্ণনাকারী । তারা ফাইলগুলি (বা পাইপ, বা সকেট, ইত্যাদি ...) উল্লেখ করতে পারে। এই ক্ষেত্রে আপনি স্টাডাউট ফাইল ডেস্ক্রিপ্টর তৈরি করেছেন (যা 1) stdout.txtবর্তমান ডিরেক্টরিতে আপনার ফাইলটি উল্লেখ করে । কোন ধরণের ফাইল সিস্টেম stdout.txtবাস করে তা বিবেচ্য নয় ।
সেলেদা

আপনি কোন "এই জাতীয় ফাইল" উল্লেখ করছেন? এই কমান্ডের সাথে জড়িত একমাত্র ফাইলটি stdout.txt, যা কমান্ডটি তৈরি করে।
গিলস

এই জাতীয় ফাইলটি হ'ল ফাইল বর্ণনাকারী 1 সহ, আমি স্পষ্টতই জানি যে টেক্সট ফাইলটি অনুসন্ধান নয়, সম্ভবত আমি প্রশ্নটি সঠিক উপায়ে রাখিনি, তবে এটি ঠিক আছে। উত্তর পেয়েছি। তার জন্য procfs , ধন্যবাদ @sukminder করতে
ArunMKumar

উত্তর:


2

আপনি যদি লিনাক্সে থাকেন এবং আমি আপনার প্রশ্নটি সঠিকভাবে পড়ে থাকি তবে হ্যাঁ ভিতরে lookোকান /proc

একটি নির্দিষ্ট প্রক্রিয়া জন্য দেখুন /proc/[pid]/fd, যেমনls -l /proc/123/fd/

এছাড়া করে বর্তমান প্রক্রিয়া FD এর পৌঁছানোর একটি বিশেষ পদ্ধতিতে হল: /proc/self/fd

দ্রষ্টব্য যে উদাহরণটি প্রক্রিয়াটির ls -l /proc/self/fdজন্য হবে lsএবং আপনার বর্তমান শেলের জন্য নয় যা আপনি দেখতে পাচ্ছেন:

cat /proc/self/cmdline | tr '\000' '\n'

অথবা

cat /proc/self/status

শেষ চেহারাটির জন্য বিশেষত PPidআপনার শেলের পিআইডি হওয়া উচিত।

Name:   cat
State:  R (running)
Tgid:   12696
Pid:    12696
PPid:   312

একটি পরীক্ষা হিসাবে আপনি দুটি টার্মিনাল উইন্ডো খোলার চেষ্টা করতে পারেন:

  1. উইন্ডো 1 এ echo $$সেই শেলের পিআইডি পেতে প্রবেশ করুন ।
  2. উইন্ডোতে 2 বলুন cat /proc/[pid]/fd/1
  3. উইন্ডো 1 এ টাইপ করা শুরু করুন এবং উইন্ডো 2 এ যা ঘটে তা পর্যবেক্ষণ করুন।

  • কার্নেল.আরগে / প্রো
  • proc TLDP এ
  • Man7.org এ ফাইল সিস্টেমগুলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.