উত্তর:
পাইপগুলি কেবল 0 (স্টিডিন) এর চেয়ে আলাদা আলাদা ফাইল বর্ণনাকারীর সাথে আবদ্ধ থাকে:
$ echo <(true)
/dev/fd/63
$ echo <(true) <(true)
/dev/fd/63 /dev/fd/62
একটি প্রক্রিয়া অবশ্যই একসাথে একাধিক ওপেন ফাইল বর্ণনাকারী থাকতে পারে, তাই সমস্যা নেই।
pipe()সিস্টেম কল দ্বারা নির্মিত ।
pipe()এবং তারপরে সাবপ্রসেসগুলি কাঁটাচামচ করে। মূল প্রক্রিয়া করে অতিরিক্ত ফাইল বর্ণনাকারী খোলেন তাহলে একটি বেনামী পাইপ ব্যবহার করা হয় না। এই অতিরিক্ত ফাইল বর্ণনাকারী ফর্মটিতে পাস করা হয় /dev/fd/..., এবং প্রক্রিয়াটি সাধারণত এই ফাইলের নামগুলি ব্যবহার করে এগুলি খুলবে। এটি তাদের dup()আরও বেশি ওপেন ফাইল বর্ণনাকারী তৈরি করে এডি হতে সাহায্য করবে । প্রক্রিয়াটি কোনও খোলা কল ছাড়াই এই
a, আমি এটি হিসাবে ডেকেছি ./a <(ls)এবং এটি সফলভাবে ফাইলগুলির তালিকা মুদ্রিত করেছে, প্রমাণিত হয়েছে যে নামযুক্ত ফাইল ডিক্রিপ্টর (আমার ক্ষেত্রে 63৩) ইতিমধ্যে খোলা ছিল। ব্যাশ লিনাক্সের চেয়ে বিভিন্ন আর্কিটেকচারের অস্থায়ী ডিরেক্টরিতে নামযুক্ত পাইপ ব্যবহার করতে পারে, যদি প্রধান প্রক্রিয়াতে প্রবেশের সময় কোনও অতিরিক্ত ফাইল বর্ণনাকারী না খোলা থাকে।
bashমানুষ পাতা।