লিনাক্স কমান্ডটি শিখুন - অপেক্ষা করুন

নাম

অপেক্ষা করুন, waitpid - প্রক্রিয়া সমাপ্তির জন্য অপেক্ষা করুন

সংক্ষিপ্তসার

# অন্তর্ভুক্ত
# অন্তর্ভুক্ত

pid_t অপেক্ষা (int * status );
pid_t waitpid (pid_t pid , int * status , int বিকল্প );

বিবরণ

অপেক্ষা ফাংশন বর্তমান প্রক্রিয়ার সঞ্চালন স্থগিত না হওয়া পর্যন্ত একটি শিশু প্রস্থান না হওয়া পর্যন্ত, বা একটি সংকেত বিতরণ না হওয়া পর্যন্ত, যার কার্যাবলী বর্তমান প্রক্রিয়াটি বন্ধ করা বা সংকেত হ্যান্ডলিং ফাংশন কল করা। যদি একটি কল ইতিমধ্যেই কল (একটি তথাকথিত "প্রাণিবিশেষ" প্রক্রিয়া) সময় দ্বারা প্রস্থান করা হয়, ফাংশন অবিলম্বে ফিরে। শিশু দ্বারা ব্যবহৃত কোন সিস্টেম সম্পদ মুক্ত হয়।

Waitpid ফাংশন বর্তমান প্রক্রিয়ার এক্সিকিউশন সাসপেন্ড করে, যতক্ষণ প্যাড আর্গুমেন্ট দ্বারা নির্ধারিত একটি শিশু প্রস্থান করা হয় না, অথবা একটি সংকেত প্রদান না করা পর্যন্ত, যার কার্যাবলী বর্তমান প্রক্রিয়াকে বন্ধ করে দেয় অথবা একটি সংকেত হ্যান্ডলিং ফাংশন কল করা হয়। যদি পিইদ দ্বারা অনুরোধকৃত একটি শিশু ইতিমধ্যে কল এর সময় (একটি তথাকথিত "জম্বু" প্রক্রিয়া) দ্বারা বেরিয়ে যায়, তাহলে ফাংশনটি অবিলম্বে ফিরে আসে। শিশু দ্বারা ব্যবহৃত কোন সিস্টেম সম্পদ মুক্ত হয়।

পিনের মান এক হতে পারে:

<-1

যার মানে কোনও শিশু প্রক্রিয়ার জন্য অপেক্ষা করা যার প্রসেস গ্রুপ আইডি পডের পরম মান সমান।

-1

যা কোনও সন্তানের প্রক্রিয়ার জন্য অপেক্ষা করার মানে; এই একই আচরণ যা প্রদর্শনী অপেক্ষা

0

যার অর্থ কোনও শিশু প্রক্রিয়া যার জন্য প্রক্রিয়া গোষ্ঠী আইডি কলিং প্রক্রিয়ার সমান হয়।

> 0

যার অর্থ সন্তানের জন্য অপেক্ষা করা যার প্রক্রিয়া ID pid এর মান সমান।

বিকল্পগুলির মান নিম্নলিখিত OR স্থির একটি শূন্য বা আরও বেশি শূন্য হয়:

WNOHANG

যার মানে কোন শিশু কোনও প্রস্থান ছাড়াই তাৎক্ষণিকভাবে ফিরে আসবে।

WUNTRACED

যার অর্থ বন্ধ করা হয় শিশুদের জন্য ফিরে, এবং যার অবস্থা রিপোর্ট করা হয় না।

(লিনাক্স-শুধুমাত্র বিকল্পগুলির জন্য, নীচে দেখুন।)

যদি স্থিতিটি নুল না থাকে, অবস্থানের দ্বারা অবস্থানের দিকে অবস্থান করে অবস্থানের অপেক্ষা বা অপেক্ষাবিশিষ্ট দোকানের অবস্থা তথ্য অপেক্ষা করুন

এই অবস্থাটি নিম্নলিখিত ম্যাক্রোগুলির সাথে মূল্যায়ন করা যেতে পারে (এই ম্যাক্রোটি একটি স্ট্যাট বাফার (একটি int ) একটি আর্গুমেন্ট হিসাবে গ্রহণ করে - বাফারের একটি পয়েন্টার নয়!):

WIFEXITED ( অবস্থা )

শিশুটি স্বাভাবিকভাবে বের হয়ে গেলে অ-শূন্য হয়।

WEXITSTATUS ( অবস্থা )

শিশুটির রিটার্ন কোডের অন্তত উল্লেখযোগ্য আটটি বিট মূল্যায়ন করে যা বন্ধ হয়ে যায় (যা বন্ধ করার জন্য কল করার যুক্তি হিসেবে ) অথবা প্রধান প্রোগ্রামের রিটার্ন স্টেটমেন্টের আর্গুমেন্ট হিসাবে বিবেচিত হতে পারে। এই ম্যাক্রোটি শুধুমাত্র মূল্যায়ন করা যাবে যদি উইফক্সিটেড অ-শূন্যটি ফেরত আসে

WIFSIGNALED ( স্থিতি )

যদি কোন প্রক্রিয়ায় ধরা পড়ে না এমন একটি সংকেতের কারণে শিশু প্রক্রিয়াকরণটি বের হয়ে যায় তবে সত্যটি ফিরে আসে।

WTERMSIG ( অবস্থা )

সন্তানের প্রসেস বন্ধ করতে যে সংকেত সংখ্যা ফেরৎ। এই ম্যাক্রোটি শুধুমাত্র মূল্যায়ন করা যাবে যদি WIFSIGNALED অ-শূন্য অবস্থায় ফেরত আসে।

WIFSTOPPED ( স্থিতি )

রিটার্ন যে শিশু প্রক্রিয়াটি বর্তমানে বন্ধ করা হয় যদি সত্য ফেরত দেয়; এটি শুধুমাত্র সম্ভব যদি কল WUNTRACED ব্যবহার করা হয়

WSTOPSIG ( অবস্থা )

সন্তানের বন্ধ করতে যার ফলে সংকেত সংখ্যা ফেরৎ এই ম্যাক্রোটি কেবল মূল্যায়ন করা যাবে যদি WIFSTOPPED অ-শূন্য অবস্থায় ফেরত আসে।

ইউনিক্সের কিছু সংস্করণ (উদাহরণস্বরূপ লিনাক্স, সোলারিস, কিন্তু এআইস, সানওএস) কোনও ম্যাক্রো WCOREDUMP ( স্ট্যাটাস ) সংজ্ঞায়িত করে কিনা তা চাইল্ড প্রসেসটি ডাম্প করে কিনা। শুধু #ifdef WCOREDUMP ... #endif এ সংযুক্ত এই ব্যবহার করুন

ফেরত মূল্য

যে শিশুটি প্রস্থান করে, বা শূন্য হওয়ার প্রক্রিয়া আইডি যদি WNOHANG ব্যবহার করা হয় এবং কোনো শিশু পাওয়া যায় না, অথবা ত্রুটিযুক্ত -1 তে (যার ক্ষেত্রে ত্রুটিমুক্ত একটি যথাযথ মান নির্ধারণ করা হয়)।

ত্রুটি

ECHILD

যদি প্রক্রিয়াটি নির্দিষ্ট করা হয় pid বিদ্যমান নয় বা কলিং প্রক্রিয়ার একটি শিশু নয়। (যদি SIGCHLD এর জন্য কর্ম SIG_IGN হিসাবে নির্ধারিত হয় তবে এটি নিজের নিজের সন্তানের জন্য ঘটতে পারে। থ্রেড সম্পর্কে লিন্যাক্স নোটিস বিভাগও দেখুন।)

EINVAL

যদি বিকল্প যুক্তি অবৈধ।

EINTR

যদি WNOHANG সেট না হয় এবং একটি অবরোধহীন সংকেত বা একটি SIGCHLD ধরা হয়।