আমি ব্যাশ স্ক্রিপ্ট আউটপুট অতিরিক্ত তথ্য তৈরি করতে চাই যখন তারা খোলা থাকে তখন 3 এর চেয়ে বেশি বা সমান সংখ্যক বর্ণনাকারী (এফডি) ফাইল করতে পারে। কোনও এফডি খোলা আছে কিনা তা পরীক্ষা করতে, আমি নিম্নলিখিত কৌশলটি তৈরি করেছি:
if (printf '' 1>&3) 2>&-; then
# File descriptor 3 is open
else
# File descriptor 3 is not open
fi
এটি আমার প্রয়োজনের জন্য যথেষ্ট, তবে আমি যদি এফডি বৈধ হয় তবে পরীক্ষার আরও বেশি বুদ্ধিমান উপায় আছে কিনা তা সম্পর্কে আমি আগ্রহী। আমি বিশেষ করে কিনা সেখানে একটি ম্যাপিং বিদ্যমান আগ্রহী fcntl(1)
(ক শেল কমান্ড প্রাপ্ত syscall, যা এফডি পতাকার আহরণ সম্ভব হবে O_WRONLY
এবং O_RDWR
পরীক্ষা করা হবে কিনা তা এফডি লিখনযোগ্য, এবং O_RDONLY
এবং O_RDWR
পরীক্ষা করা হবে কিনা তা এফডি পাঠযোগ্য)।
<>
কী? শেলটি তার স্টাডার থেকে পড়তে যাচ্ছে না, আপনি কেন এটি পড়তে + লেখাতে খুলতে চান? অভ্যন্তরীণ যা ঘটেছিল তার সাথে আপনি কী বোঝাতে চাইছেন ? ?