Skip to main content

Várakozás - Linux Command - Unix parancs

Linux in Mint Condition | Linux Action Show 394 (Június 2026)

Linux in Mint Condition | Linux Action Show 394 (Június 2026)
Anonim

Név

wait, waitpid - várjon a folyamat befejezésére

Szinopszis

#include #include

pid_t wait (int * állapot );pid_t waitpid (pid_t pid , int * állapot , int opciók );

Leírás

Avárjon a függvény felfüggeszti az aktuális folyamat végrehajtását mindaddig, amíg egy gyermek kilép, vagy amíg egy jel nem érkezik, akinek feladata az aktuális folyamat leállítása vagy egy jelkezelési funkció hívása. Ha egy gyermek már kilépett a hívás idején (ún. "Zombi" folyamat), a funkció azonnal visszatér. A rendszer által használt rendszererőforrások szabadulnak fel.

Awaitpid függvény felfüggeszti az aktuális folyamat végrehajtását, amíg a pid az argumentum kilépett, vagy addig, amíg egy jel nem érkezik, akinek az a feladata, hogy befejezi az aktuális folyamatot, vagy egy jelkezelési funkciót hívjon le. Ha a gyermek a kérés szerint pid már kilépett a hívás idején (egy úgynevezett "zombi" folyamat), a funkció azonnal visszatér. A rendszer által használt rendszererőforrások szabadulnak fel.

Az értéke pid lehet az egyik:

< -1

ami azt jelenti, hogy várni kell minden olyan gyermekprocesszust, amelynek folyamatcsoport azonosítója megegyezik a pid .

-1

ami azt jelenti, hogy várni kell minden gyermeki folyamatra; ez ugyanaz a viselkedés, amelyvárjon kiállítást.

0

ami azt jelenti, hogy várni kell minden olyan gyermekfolyamatra, amelynek a folyamatcsoport azonosítója megegyezik a hívási folyamatéval.

> 0

ami azt jelenti, hogy várni kell a gyermeket, akinek a folyamatazonosítója megegyezik a pid .

Az értéke opciók egy VAGY az alábbi konstansok közül nulla vagy több:

WNOHANG

ami azt jelenti, hogy azonnal vissza kell térni, ha egyetlen gyermek sem távozott.

WUNTRACED

ami azt jelenti, hogy visszaállnak a megállt gyermekek számára is, akiknek státuszát nem jelentették be.

(Csak Linux-opciók esetén lásd alább.)

Ha állapot nemNULLA, várjon vagywaitpid tárolja az állapotinformációkat a kijelölt helyen állapot .

Ezt az állapotot a következő makrókkal lehet kiértékelni (ezek a makrók a stat pufferrel (plint) argumentumként --- nincs mutató a pufferhez!):

WIFEXITED ( állapot )

nem nulla, ha a gyermek normálisan kilép.

WEXITSTATUS ( állapot )

értékeli a gyermek visszatérési kódjának legkevésbé lényeges nyolc bitjét, amely megszűnt, és amelyet akijárat() vagy mint az a Visszatérés nyilatkozat a fő programban. Ez a makró csak akkor értékelhető, haWIFEXITEDnem nulla.

WIFSIGNALED ( állapot )

akkor igaz, ha a gyermek folyamat kilépett a nem fogott jel miatt.

WTERMSIG ( állapot )

visszaadja annak a jelnek a számát, amely a gyermek folyamatát megszüntette. Ez a makró csak akkor értékelhető, haWIFSIGNALED nem nulla.

WIFSTOPPED ( állapot )

akkor igaz, ha a visszaszolgáltatásot okozó gyermekfolyamat jelenleg leállt; ez csak akkor lehetséges, ha a hívást a gombbal végeztükWUNTRACED.

WSTOPSIG ( állapot )

visszaadja annak a jelnek a számát, amely miatt a gyermek leállt. Ez a makró csak akkor értékelhető, haWIFSTOPPED nem nulla.

A Unix néhány verziója (pl. Linux, Solaris, de nem AIX, SunOS) egy makrót is definiálWCOREDUMP ( állapot ) hogy ellenőrizze, hogy a gyermek feldolgozza-e a dömpingmagot. Csak ezt használja a #ifdef WCOREDUMP … #endif fájlban.

Visszatérési érték

A kilépett gyermek azonosítási folyamata, vagy nulla, haWNOHANG és nem volt gyermek, vagy -1 hiba esetén (ebben az esetben errno megfelelő értékre van állítva).

hibák

ECHILD

ha a pid nem létezik, vagy nem hívja meg a hívási folyamatot. (Ez történhet a saját gyermeke számára, ha a SIGCHLD művelet SIG_IGN-re van állítva. Lásd még a LINUX NOTES rész a szálakról.)

EINVAL

ha a opciók argumentum érvénytelen.

Eintr

haWNOHANG nem volt beállítva, és egy feloldatlan jel vagy aSIGCHLD elkapták.