שם
המתן, המתן - המתן לסיום התהליך
תקציר
#include pid_t wait (int * סטטוס );pid_t waitpid (pid_t pid , int * סטטוס , int אפשרויות );
החכה פונקציה משעה ביצוע של התהליך הנוכחי עד צאצא ילד, או עד האות הוא נמסר פעולה אשר היא לסיים את התהליך הנוכחי או לקרוא פונקציה טיפול אותות. אם ילד כבר יצא בזמן השיחה (תהליך שנקרא "זומבי"), הפונקציה חוזרת מיד. כל משאבי המערכת המשמשים את הילד משוחררים. ה12 formal פונקציה משעה ביצוע של התהליך הנוכחי עד ילד כפי שצוין על ידי pid ארגומנט יצא, או עד שנשלח אות שתפקידו לסיים את התהליך הנוכחי או להתקשר לפונקציית טיפול אותות. אם הילד המבוקש על ידי pid כבר יצא בזמן השיחה (תהליך שנקרא "זומבי"), הפונקציה חוזרת מיד. כל משאבי המערכת המשמשים את הילד משוחררים. הערך של pid יכול להיות אחד מ: < -1 כלומר להמתין לכל ילד תהליך אשר מזהה הקבוצה בתהליך שלה שווה לערך המוחלט של pid . -1 כלומר להמתין לכל ילד תהליך; זוהי אותה התנהגות אשרחכה תערוכות. 0 כלומר, להמתין לכל תהליך ילדות שמזהה קבוצת התהליך שלו זהה לזה של תהליך הקריאה. > 0 כלומר להמתין לילד שזיהוי התהליך שלו שווה לערך של pid . הערך של אפשרויות הוא OR של אפס או יותר מהקבועים הבאים: וינוהאנג כלומר לחזור מיד אם אף ילד לא יצא. מיובש שפירושו גם להחזיר לילדים אשר נעצרים, ומעמדם לא פורסם. (לאפשרויות של Linux בלבד, ראה בהמשך). אם סטטוס לאריק, חכה או12 formal מידע מצב החנות במקום הצביע על ידי סטטוס . מצב זה ניתן להעריך עם פקודות המאקרו הבאות (פקודות מאקרו אלה לוקחים את מאגר הנתונים (aint) כטיעון --- לא מצביע למאגר!): WIFEXITED ( סטטוס ) הוא לא אפס אם הילד יצא באופן נורמלי. WEXITSTATUS ( סטטוס ) מעריכה לפחות שמונה סיביות של קוד ההחזרה של הילד אשר הסתיים, אשר עשוי להיות מוגדר כטיעון לשיחה ליציאה () או כטיעון עבור לחזור הצהרה בתוכנית המרכזית. מאקרו זה ניתן להערכה רק אםWIFEXITEDחזר לא אפס. WIFSIGNALED ( סטטוס ) מחזירה אמת אם תהליך הילד יצא בגלל אות שלא נתפס. WTERMSIG ( סטטוס ) מחזירה את מספר האות שגרם לסיום תהליך הילד. מאקרו זה ניתן להערכה רק אםWIFSIGNALED חזר לא אפס. WIFSTOPPED ( סטטוס ) מחזירה אמת אם תהליך הילד שגרם החזרה מופסק כעת; זה אפשרי רק אם השיחה נעשתה באמצעותמיובש. WSTOPSIG ( סטטוס ) מחזירה את מספר האות שגרם לילד להפסיק. מאקרו זה ניתן להערכה רק אםוויפופופד חזר לא אפס. גרסאות מסוימות של Unix (למשל Linux, Solaris, אך לא AIX, SunOS) מגדירות גם מאקרוWCOREDUMP ( סטטוס ) כדי לבדוק אם הילד תהליך הליבה זרקה. השתמש רק במארז #ifdef WCOREDUMP … #endif. מזהה התהליך של הילד שיצא, או אפס אםוינוהאנג שימש ולא היה ילד זמין, או -1 על טעות (ובמקרה כזה טעות מוגדר לערך מתאים). ECHILD אם צוין התהליך pid אינו קיים או אינו ילד בתהליך הקריאה. (זה יכול לקרות לילד של ילדכם אם הפעולה עבור SIGCHLD מוגדרת ל- SIG_IGN. ראו גם את הקטע LINUX הערות לגבי הנושאים.) EINVAL אם אפשרויות ארגומנט לא היה חוקי. EINTR אםוינוהאנג לא הוגדר ואותת לא מסומנת אוSIGCHLD נתפס. תיאור
ערך החזרה
שגיאות




