Skip to main content

Vent - Linux Command - Unix Command

Mangler (Ventrilo Alternative for Linux) - Ubuntu 10.04 (LTS) - Tips and Tricks (Juni 2026)

Mangler (Ventrilo Alternative for Linux) - Ubuntu 10.04 (LTS) - Tips and Tricks (Juni 2026)
Anonim

Navn

vent, ventetid - vent på procesafslutning

Synopsis

#omfatte #omfatte

pid_t vent (int * status );pid_t waitpid (pid_t pid , int * status , int muligheder );

Beskrivelse

Detvente funktionen suspenderer udførelsen af ​​den aktuelle proces, indtil et barn er slukket, eller indtil et signal er afleveret, hvis handling er at afslutte den aktuelle proces eller til at kalde en signalhåndteringsfunktion. Hvis et barn allerede er gået ud af opkaldstidspunktet (en såkaldt "zombie" -proces), returnerer funktionen straks. Eventuelle systemressourcer brugt af barnet frigøres.

Detwaitpid funktion suspenderer udførelsen af ​​den aktuelle proces indtil et barn som angivet af pid argumentet er ophørt, eller indtil et signal er afleveret, hvis handling er at afslutte den aktuelle proces eller at kalde en signalhåndteringsfunktion. Hvis et barn efterspørges af pid har allerede afvist på tidspunktet for opkaldet (en såkaldt "zombie" -proces), returnerer funktionen med det samme. Eventuelle systemressourcer brugt af barnet frigøres.

Værdien af pid kan være en af:

< -1

hvilket betyder at vente på enhver børneproces, hvis procesgruppe ID er lig med den absolutte værdi af pid .

-1

hvilket betyder at vente på enhver børneproces; Dette er den samme adfærd somvente udstillinger.

0

hvilket betyder at vente på enhver børneproces, hvis procesgruppe-id er lig med opkaldsprocessen.

> 0

hvilket betyder at vente på barnet, hvis proces ID er lig med værdien af pid .

Værdien af muligheder er en OR på nul eller flere af følgende konstanter:

WNOHANG

hvilket betyder at vende tilbage straks, hvis intet barn er ophørt.

WUNTRACED

hvilket betyder også at vende tilbage til børn, der stoppes, og hvis status ikke er blevet rapporteret.

(For Linux-only muligheder, se nedenfor.)

Hvis status er ikkeNUL, vente ellerwaitpid lagre statusoplysninger på den placering, der peges på af status .

Denne status kan vurderes med følgende makroer (disse makroer tager statbufferen (enint) som et argument --- ikke en peger på bufferen!):

WIFEXITED ( status )

er ikke-nul, hvis barnet forlader normalt.

WEXITSTATUS ( status )

evaluerer til de mindst signifikante otte bit af barnets returkode, som afsluttes, hvilket kan have været angivet som argumentet for et opkald tilAfslut() eller som argumentet for a Vend tilbage erklæring i hovedprogrammet. Denne makro kan kun evalueres, hvisWIFEXITEDreturneres ikke-nul.

WIFSIGNALED ( status )

returnerer sandt, hvis barneprocessen forlod på grund af et signal, der ikke blev fanget.

WTERMSIG ( status )

returnerer antallet af signalet, der fik barneprocessen til at ophøre. Denne makro kan kun evalueres, hvisWIFSIGNALED returneres ikke-nul.

WIFSTOPPED ( status )

returnerer sandt, hvis barneprocessen, der forårsagede afkastet, for øjeblikket er stoppet; Dette er kun muligt, hvis opkaldet blev gjort ved hjælp afWUNTRACED.

WSTOPSIG ( status )

returnerer nummeret på signalet, som fik barnet til at stoppe. Denne makro kan kun evalueres, hvisWIFSTOPPED returneres ikke-nul.

Nogle versioner af Unix (f.eks. Linux, Solaris, men ikke AIX, SunOS) definerer også en makroWCOREDUMP ( status ) at teste om barnets proces dumpede kerne. Brug kun dette vedlagt i #ifdef WCOREDUMP … #endif.

Returværdi

Proces-id'et af barnet, der udløb, eller nul hvisWNOHANG blev brugt og intet barn var tilgængeligt, eller -1 ved fejl (i hvilket tilfælde errno er indstillet til en passende værdi).

fejl

ECHILD

hvis den proces, der er angivet i pid eksisterer ikke eller er ikke et barn i opkaldsprocessen. (Dette kan ske for ens eget barn, hvis handlingen til SIGCHLD er sat til SIG_IGN. Se også afsnittet LINUX NOTES om tråde.)

EINVAL

hvis muligheder Argumentet var ugyldigt.

EINTR

hvisWNOHANG blev ikke indstillet og et ublocket signal eller aSIGCHLD blev fanget.