የሊኑክስ ትዕዛዝ ይወቁ - ይጠብቁ

ስም

ይጠብቁ, waitpid - የሂደቱ መቋረጥ ይጠብቁ

ማጠቃለያ

#in ን አካት
#includes

pid_t wait (int * status );
pid_t waitpid (pid_t pid , int * status , int አማራጮች );

መግለጫ

የተደጉት ተግባሮች አንድ ልጅ ወጥቶ እስኪወጣ ድረስ የአሁኑን ሂደትን አገድ ያደርጋል ወይም ድርጊቱ የአሁኑን ሂደት ለማቆም ወይም የሲግናል መቆጣጠሪያ ተግባርን ለመደወል ምልክቱ እስከሚሰጥበት ጊዜ ድረስ ይቆግዳል. አንድ ልጅ ከጥሪው ሰዓት ("ዞምቢ" ሂደትን) አስቀድሞ ወጥቶ ከሆነ, ተግባሩ ወዲያውኑ ይመለሳል. ማንኛውም የህጻናት ስርዓት ግብይት ነፃ ነው.

የፔይፐድድ ተግባሩ በፒዲድ ሙግቱ የተገለፀ ህጻኑ እስከሚወጣበት ጊዜ ድረስ የአሁኑን ሂደትን አጣድጦ ይቆያል , ወይም ድርጊቱ አሁን ያለውን ሂደት ለማቆም ወይም የሲግናል መቆጣጠሪያ ተግባርን ለመደወል ምልክት ሲሰጥ እስከሚያልቅ ድረስ. በጥሪው ሰዓት ("ዞምቢ" ሂደትን) የሚባለው ህጻናት ቀድሞውኑ ወጥተው ወደ ውጪ ( ፒቢ) እንዲወጡ ከተጠየቁ ተግባሩ ወዲያውኑ ይመለሳል. ማንኛውም የህጻናት ስርዓት ግብይት ነፃ ነው.

የፒዲ ( እሴት) እሴት ከሚከተሉት አንዱ ሊሆን ይችላል-

<-1

ይህ ማለት የሂደቱን የቡድን መታወቂያ የፒዲድ ፍፁምነት እኩል የሆነ የህጻንን ሂደት ይጠብቁ ማለት ነው.

-1

ይህ ማለት ማንኛውንም የልጅዎን ሂደት መጠበቅ. ይህ የሚታዩ እቃዎችን የሚጠብቀው ተመሳሳይ ባህሪ ነው.

0

ይህ ማለት የሂደቱ የቡድን መታወቂያ የሂደቱ ሒደቱ ከሂደቱ ጋር እኩል መሆኑን የሚጠብቁትን የልጅ ሂደትን መጠበቅ ነው.

> 0

ይህ ማለት ሂደቱ የፒዲ እሴትን እሴት ካለው ልጅ ጋር ጠብቆ ማቆየት ማለት ነው .

የአማራጮች ዋጋው ከሚከተሉት መስመሮች የዜሮ ወይም ከዚያ በላይ ነው:

WNOHANG

ይህም ማለት አንድ ልጅ ከወለዱ ወዲያውኑ መመለስ ማለት ነው.

W ድል ተደርጓል

ይህም ማለት ለተቆሙ ህፃናት መመለስ, እና ማንነታቸው ያልተገለፀውም ማለት ነው.

(ለሊነክስ-ብቻ አማራጮች ከታች ይመልከቱ.)

ሁኔታው NULL ካልሆነ በቦታው መጠንን በመጠቆም ወይም በመጠባበቅ ላይ ያለ የሱቅ መረጃ ሁኔታ መረጃ.

ይህ ሁኔታ በሚከተሉት ማክሮዎች ሊገመገም ይችላል (እነዚህ ማክሮዎች የስታቲስቲክ ቋት ( int ) ሲወስዱ --- ለጠባቂው ጠቋሚ ሳይሆን!

WIFEXITED ( ሁኔታ )

ልጁ ከወትሮው ከወደደ ዜሮ የለውም.

WEXITSTATUS ( ሁኔታ )

ልጁን ለመመለስ ቢያንስ 8 ጥቅሶች ወደ ልጁ ለመመለስ ( ወይም ) ለመጥሪያ ጥሪው ( እንደ ዋናው መርሃግብር ሙግት) ሆኖ ያገለግላል. ይህ ማክሮ ሊታይ የሚችለው WIFEXITED ብቻ ሳይሆን ዜሮ ካልሆነ ብቻ ነው.

WIFSIGNALED ( ሁኔታ )

የልጅዎ ሂደት ያልተያዘበት ምልክት ምክንያት ከቆየ ትክክለኛውን ይመልሳል.

WTERMSIG ( ሁኔታ )

የሕፃኑ ሂደት እንዲቋረጥ ያደረጋቸውን የመገናኛ ምልክቶች ብዛት ይመልሳል. WIFSIGNALED ወደ ዜሮ ካልመለሰ ይህ ማክሮ ሊገመገም ይችላል.

WIFSTOPPED ( ሁኔታ )

ተመላሽ ሂደቱ እንዲታገድ ያስደረገባቸው ሂደቶች በአሁኑ ጊዜ እውነት ይመለሳል; ይህ ጥሪ የሚሆነው WUNTRAED በመጠቀም ጥሪው ከተጠናቀቀ ብቻ ነው .

WSTOPSIG ( ሁኔታ )

ህፃኑ እንዲቆም ያደረጋቸውን የመቆጣጠሪያዎች ቁጥር ይመልሳል. ይህ ማክሮ ሊታይ የሚችለው WIFSTOPPED ዜሮ ያልሆኑ ከሆነ ብቻ ነው.

አንዳንድ የዩኒክስ ስሪቶች (ለምሳሌ, ሊነክስ, ሶላላይሲ, ግን AIX, SunOS) እንዲሁም ህጻኑ የሂደቱን ሂደት መፈተኗን ለመፈተሽ ማክሮ ኮምፒተርን ( ሁኔታ ) ይገልጻል . ይህንን ብቻ በ #ifdef WCOREDUMP ... #endif ውስጥ ተጠቀም.

እሴት ይመልሱ

WNOHANG ጥቅም ላይ ከዋለ እና ምንም ልጅ ከሌለ, ወይም -1 በስህተት ( errno አግባብ ወደሆነ ዋጋ ከተቀናበረ) የልጁ የሂደት መለያ, ወይም ዜሮ ከሆነ.

ስህተቶች

ECHILD

በ ውስጥ የተገለፀው ሂደት ፒድ አይገኝም ወይም የጥሪ ሂደቱ ልጅ አይደለም. (የ SIGCHLD እርምጃ ወደ SIG_IGN ከተወሰነ ለሆነ ልጅ ይህ ሊሆን ይችላል.በሰርዝ ላይ ስለ LINUX NOTES ክፍል ይመልከቱ.)

EINVAL

የአማራጮች ሙግት ልክ ያልሆነ ከሆነ.

EINTR

WNOHANG ካልተዘጋጀ እና እገዳ ያልተደረገበት ምልክት ወይም SIGCHLD ቢያዝ .