যদি আমি (বোর্নের মতো শেল) করি:
exec 3> file 4>&3 5> file 6>> file
ফাইল বর্ণনাকারী 3 এবং 4, যেহেতু 4 টি dup()
3 থেকে সম্পাদনা করা হয়েছিল , একই খোলা ফাইলের বিবরণটি ভাগ করুন (একই বৈশিষ্ট্য, ফাইলের মধ্যে একই অফসেট ...)। এই প্রক্রিয়াটির 5 এবং 6 ফাইল বর্ণনাকারীরা যখন আলাদা ফাইলের বিবরণে থাকে (উদাহরণস্বরূপ, ফাইলগুলির মধ্যে তাদের প্রত্যেকের নিজস্ব পয়েন্টার রয়েছে)।
এখন, lsof
আউটপুটে, আমরা যা দেখছি তা হ'ল:
zsh 21519 stephane 3w REG 254,2 0 10505865 /home/stephane/file
zsh 21519 stephane 4w REG 254,2 0 10505865 /home/stephane/file
zsh 21519 stephane 5w REG 254,2 0 10505865 /home/stephane/file
zsh 21519 stephane 6w REG 254,2 0 10505865 /home/stephane/file
এটি দিয়ে কিছুটা ভাল lsof +fg
:
zsh 21519 stephane 3w REG W,LG 254,2 0 10505865 /home/stephane/file
zsh 21519 stephane 4w REG W,LG 254,2 0 10505865 /home/stephane/file
zsh 21519 stephane 5w REG W,LG 254,2 0 10505865 /home/stephane/file
zsh 21519 stephane 6w REG W,AP,LG 254,2 0 10505865 /home/stephane/file
(এখানে লিনাক্স ৩.১16 এ) আমরা দেখতে পাচ্ছি যে এফডি এর আলাদা আলাদা পতাকা রয়েছে, সুতরাং এটি এফডি 3, 4 বা 5 এর চেয়ে আলাদা একটি ফাইলের বিবরণ হতে হবে, তবে এটি থেকে আমরা fd 5 বলতে পারি না বিভিন্ন ওপেন ফাইল বিবরণ । এর সাথে -o
, আমরা অফসেটটিও দেখতে পেতাম, তবে আবার একই অফসেটটি এটির একই খোলার ফাইল বিবরণের গ্যারান্টি দেয় না ।
এটি খুঁজে পাওয়ার জন্য কোনও অ-অনুপ্রবেশকারী 1 উপায় আছে? বাহ্যিকভাবে, বা কোনও প্রক্রিয়াটির জন্য নিজস্ব ফাইল বর্ণনাকারী?
ঘ । একটি হিউরিস্টিক পদ্ধতির মাধ্যমে একটি এফডির পতাকা পরিবর্তন করা fcntl()
এবং ফলস্বরূপ অন্যান্য ফাইল বর্ণনাকারীরা তাদের পতাকাগুলি কীভাবে আপডেট করেছে তা দেখতে পাওয়া যায়, তবে এটি অবশ্যই আদর্শ বা বোকা প্রমাণ নয়