નામ
રાહ જુઓ, રાહ જુઓ - પ્રક્રિયા સમાપ્તિની રાહ જુઓ
સારાંશ
#include
#include
pid_t રાહ (પૂર્ણ * સ્થિતિ );
pid_t waitpid (pid_t pid , પૂર્ણાંક * સ્થિતિ , પૂર્ણાંક વિકલ્પો );
વર્ણન
રાહ વિધેય વર્તમાન પ્રક્રિયાના એક્ઝેક્યુશનને સસ્પેન્ડ કરે છે જ્યાં સુધી બાળક અસ્તિત્વમાં ન આવે ત્યાં સુધી, અથવા સિગ્નલ પહોંચાડવામાં આવે ત્યાં સુધી, જેની કાર્યવાહી વર્તમાન પ્રક્રિયાને સમાપ્ત કરવી અથવા સિગ્નલ હેન્ડલિંગ ફંક્શનને કૉલ કરવાનું છે. જો બાળક પહેલાથી જ કોલના સમયે (એક કહેવાતા "મંદબુદ્ધિ અને ભાવશૂન્ય માણસ" પ્રક્રિયા) દ્વારા બહાર નીકળી જાય છે, ત્યારે કાર્ય તરત જ આપે છે. બાળક દ્વારા વાપરવામાં આવતી કોઈપણ સિસ્ટમ સ્રોતો મુક્ત છે.
Waitpid ફંક્શન વર્તમાન પ્રક્રિયાના એક્ઝેક્યુશનને સસ્પેન્ડ કરે છે જ્યાં સુધી pid દલીલ દ્વારા નિર્દિષ્ટ કરેલા બાળકને બહાર ન આવે ત્યાં સુધી, અથવા સિગ્નલ પહોંચાડવામાં આવે ત્યાં સુધી, જેની કાર્યવાહી વર્તમાન પ્રક્રિયા સમાપ્ત કરવાનો છે અથવા સિગ્નલ હેન્ડલિંગ ફંક્શનને કૉલ કરવા માટે છે. જો પીડ દ્વારા વિનંતી કરાયેલ બાળક પહેલાથી જ કોલના સમયે (એક "મંદબુદ્ધિ અને ભાવશૂન્ય માણસ" પ્રક્રિયા) દ્વારા બહાર નીકળે છે, તો કાર્ય તરત જ આપે છે. બાળક દ્વારા વાપરવામાં આવતી કોઈપણ સિસ્ટમ સ્રોતો મુક્ત છે.
પૅડનું મૂલ્ય એક હોઇ શકે છે:
<-1
જેનો અર્થ એ છે કે કોઈપણ બાળક પ્રક્રિયા માટે રાહ જોવાની પ્રક્રિયા છે જેના પ્રક્રિયા જૂથ ID એ pid ના ચોક્કસ મૂલ્યની સમાન છે.
-1
જેનો અર્થ કોઈપણ બાળક પ્રક્રિયા માટે રાહ જોવાનો છે; આ સમાન વર્તન છે જે પ્રદર્શનનું રાહ જોતું હોય છે.
0
જેનો અર્થ એ છે કે કોઈપણ બાળક પ્રક્રિયા જેની રાહ જુએ છે તેની પ્રક્રિયા જૂથ ID કૉલિંગ પ્રોસેસની સમાન છે.
> 0
જેનો અર્થ બાળકની રાહ જોવા માટે થાય છે જેની પ્રક્રિયા ID pid ની કિંમત જેટલી છે.
વિકલ્પોનું મૂલ્ય એક અથવા શૂન્ય અથવા નીચેના સ્થિરાંકોમાંથી વધુ છે:
વનોહાંગ
જેનો અર્થ એ છે કે તરત જ કોઈ બાળક બહાર નીકળ્યું ન હોય તો.
WUNTRACED
જેનો અર્થ એ થાય કે જે બાળકોને રોકવામાં આવે છે, અને જેની દરજ્જો આપવામાં આવતો નથી તે પણ પાછો આવે છે.
(Linux-only વિકલ્પો માટે, નીચે જુઓ.)
જો સ્થિતિ નલ ન હોય તો, સ્થાન દ્વારા નિર્દેશિત સ્થાનમાં રાહ અથવા રાહપકડ સ્ટોરની સ્થિતિની માહિતી.
આ સ્થિતિને નીચેના મેક્રોઝ સાથે મૂલ્યાંકન કરી શકાય છે (આ મેક્રો સ્ટેટ બફર (એક પૂર્ણાંક ) દલીલ તરીકે લે છે --- બફર માટે નિર્દેશક નથી!):
WIFEXITED ( સ્થિતિ )
જો બાળક સામાન્ય રીતે બહાર નીકળ્યું હોય તો તે બિન-શૂન્ય છે.
WEXITSTATUS ( સ્થિતિ )
સમાપ્ત થઈ રહેલા બાળકના વળતર કોડના ઓછામાં ઓછા નોંધપાત્ર આઠ બિટ્સનું મૂલ્યાંકન કરે છે, જે કદાચ બહાર નીકળવા માટેના કોલ માટે દલીલ તરીકે અથવા મુખ્ય પ્રોગ્રામમાં રીટર્ન સ્ટેટમેંટ માટેના દલીલ તરીકે સેટ થઈ શકે છે. આ મેક્રોને મૂલ્યાંકન કરી શકાય છે જો WIFEXITED નો નૉન-શૂન્ય પરત આવે.
WIFSIGNALED ( સ્થિતિ )
જો સાચું પડે તો બાળકની પ્રક્રિયા કોઈ સિગ્નલને કારણે બહાર નીકળી જાય છે જે કેચ ન હતી.
WTERMSIG ( સ્થિતિ )
સિગ્નલની સંખ્યા પરત કરે છે જેના કારણે બાળ પ્રક્રિયા સમાપ્ત થઈ. આ મેક્રોનું મૂલ્યાંકન કરી શકાય છે જો WIFSIGNALED બિન-શૂન્ય પરત કરે.
WIFSTOPPED ( સ્થિતિ )
વળતર સાચું આપે છે જો બાળક પ્રક્રિયા જે વળતર કારણે હાલમાં બંધ છે; આ જ શક્ય છે જો કોલ WUNTRACED નો ઉપયોગ કરીને કરવામાં આવી હતી.
WSTOPSIG ( સ્થિતિ )
સિગ્નલની સંખ્યા પરત કરે છે જેના કારણે બાળકને રોકવું. આ મેક્રોનું મૂલ્યાંકન કરી શકાય છે જો WIFSTOPPED બિન-શૂન્ય પરત કરે.
યુનિક્સ (દા.ત., Linux, Solaris, પરંતુ AIX, SunOS) ના કેટલાક વર્ઝન પણ મેક્રો WCOREDUMP ( સ્થિતિ ) વ્યાખ્યાયિત કરે છે કે કેમ તે ચકાસવા માટે કે બાળ પ્રક્રિયાને કોર ડમ્પ. માત્ર આનો ઉપયોગ #ifdef WCOREDUMP ... # માં બંધ છે.
રીટર્ન વેલ્યુ
બાળકની પ્રક્રિયા ID, જે બહાર નીકળી, અથવા શૂન્ય જો WNOHANG નો ઉપયોગ કરવામાં આવતો હતો અને કોઈ બાળક ઉપલબ્ધ ન હતું, અથવા ભૂલ પર -1 (જે કિસ્સામાં ભૂલને યોગ્ય મૂલ્ય પર સેટ કરેલી છે).
ભૂલો
ECHILD
જો પ્રક્રિયામાં સ્પષ્ટ થયેલ છે pid અસ્તિત્વમાં નથી અથવા કૉલિંગ પ્રક્રિયાના બાળક નથી (જો SIGCHLD માટે ક્રિયા SIG_IGN પર સેટ છે, તો તે પોતાના બાળક માટે થઇ શકે છે. થ્રેડ્સ વિશેની LINUX નોટ્સ વિભાગ પણ જુઓ.)
EINVAL
જો વિકલ્પો દલીલ અમાન્ય હતી.
EINTR
જો WNOHANG સેટ ન હતો અને એક અનાવરોધિત સંકેત અથવા SIGCHLD પકડવામાં આવ્યો હતો.