Skip to main content

অপেক্ষা করুন - লিনাক্স কমান্ড - ইউনিক্স কমান্ড

Writing 2D Games in C using SDL by Thomas Lively (জুন 2026)

Writing 2D Games in C using SDL by Thomas Lively (জুন 2026)
Anonim

নাম

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

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

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

pid_t অপেক্ষা (int * অবস্থা );pid_t waitpid (pid_t PID , int * অবস্থা , int অপশন );

বিবরণ

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

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

মুল্য PID এক হতে পারে:

< -1

কোনও শিশুর প্রক্রিয়াটির জন্য অপেক্ষা করার অর্থ যার প্রক্রিয়া গোষ্ঠী আইডি পরম মান সমান PID .

-1

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

0

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

> 0

যা যার সন্তানের জন্য অপেক্ষা করার মানে যার আইডি মূল্য মান সমান PID .

মুল্য অপশন শূন্যের একটি OR নিম্নলিখিত ধ্রুবকগুলির মধ্যে আরো:

WNOHANG

যার কোন সন্তান যদি বের হয়ে যায় তা অবিলম্বে ফিরে আসতে হবে।

WUNTRACED

যার মানে বন্ধ হওয়া বাচ্চাদের প্রত্যাবর্তন করা, এবং যাদের অবস্থা জানানো হয়নি।

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

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

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

WIFEXITED ( অবস্থা )

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

WEXITSTATUS ( অবস্থা )

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

WIFSIGNALED ( অবস্থা )

যদি ধরা না দেওয়া সিগন্যালের কারণে শিশু প্রক্রিয়াটি বন্ধ হয়ে যায় তবে সত্যটি ফেরত দেয়।

WTERMSIG ( অবস্থা )

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

WIFSTOPPED ( অবস্থা )

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

WSTOPSIG ( অবস্থা )

সন্তানের বন্ধ হওয়া সৃষ্টির সংকেত সংখ্যা প্রদান করে। এই ম্যাক্রো শুধুমাত্র মূল্যায়ন করা যাবেWIFSTOPPED অ শূন্য ফিরে।

ইউনিক্সের কিছু সংস্করণ (উদাঃ লিনাক্স, সোলারিস, কিন্তু AIX, SunOS নয়) এছাড়াও একটি ম্যাক্রো সংজ্ঞায়িত করেWCOREDUMP ( অবস্থা ) পরীক্ষা বাচ্চা প্রক্রিয়া dumped কিনা পরীক্ষা। #Ifdef WCOREDUMP … #endif এ কেবল এইটি ব্যবহার করুন।

ফেরত মূল্য

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

ত্রুটি

ECHILD

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

EINVAL

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

EINTR

যদিWNOHANG সেট করা হয়নি এবং একটি আনলকড সংকেত বা একটিSIGCHLD ধরা পরেছিল.