Navn
vent, ventetid - vent på prosessavslutning
Synopsis
#inkludere pid_t vent (int * status );pid_t waitpid (pid_t pid , int * status , int opsjoner );
Devente funksjonen suspenderer utførelsen av den nåværende prosessen til et barn har gått ut, eller til et signal er levert, hvis handling er å avslutte den nåværende prosessen eller for å ringe en signalhåndteringsfunksjon. Hvis et barn allerede har gått ut av samtalen (en såkalt "zombie" -prosess), returnerer funksjonen umiddelbart. Eventuelle systemressurser brukt av barnet er frigjort. Dewaitpid funksjonen suspenderer kjøring av den nåværende prosessen til et barn som angitt av pid Argumentet er avsluttet, eller til et signal er levert, hvis handling er å avslutte den nåværende prosessen eller å ringe en signalhåndteringsfunksjon. Hvis et barn som ønsket av pid har allerede gått ut av samtalen (en såkalt "zombie" -prosess), returnerer funksjonen umiddelbart. Eventuelle systemressurser brukt av barnet er frigjort. Verdien av pid kan være en av: < -1 som betyr å vente på en hvilken som helst barnprosess hvis prosessgruppe ID er lik absoluttverdien av pid . -1 som betyr å vente på barnprosessen; Dette er den samme oppførselen somvente utstillinger. 0 som betyr å vente på en hvilken som helst barnprosess hvis prosessgruppe-ID er lik det som kalles. > 0 som betyr å vente på barnet hvis prosess ID er lik verdien av pid . Verdien av opsjoner er en OR av null eller flere av følgende konstanter: WNOHANG som betyr å returnere umiddelbart hvis ingen barn har gått ut. WUNTRACED som betyr å også returnere for barn som er stoppet, og hvis status ikke er rapportert. (For Linux-only alternativer, se nedenfor.) Hvis status er ikkeNULL, vente ellerwaitpid lagre statusinformasjon på stedet som er pekt på status . Denne statusen kan evalueres med følgende makroer (disse makroene tar statbufferen (enint) som et argument --- ikke en peker til bufferen!): WIFEXITED ( status ) er ikke null hvis barnet utgå normalt. WEXITSTATUS ( status ) evaluerer til minst signifikante åtte biter av returkoden til barnet som avsluttet, som kan ha blitt satt som argumentet til et anrop tilexit() eller som argumentet for a komme tilbake uttalelse i hovedprogrammet. Denne makroen kan bare evalueres hvisWIFEXITEDreturnerte ikke-null. WIFSIGNALED ( status ) returnerer sant hvis barnprosessen avsluttet på grunn av et signal som ikke ble fanget. WTERMSIG ( status ) returnerer nummeret på signalet som forårsaket barnet prosessen å avslutte. Denne makroen kan bare evalueres hvisWIFSIGNALED returnerte ikke-null. WIFSTOPPED ( status ) returnerer sant hvis barneprosessen som forårsaket avkastningen, for øyeblikket er stoppet; Dette er bare mulig hvis samtalen ble gjort medWUNTRACED. WSTOPSIG ( status ) returnerer nummeret på signalet som fikk barnet til å stoppe. Denne makroen kan bare evalueres hvisWIFSTOPPED returnerte ikke-null. Noen versjoner av Unix (for eksempel Linux, Solaris, men ikke AIX, SunOS) definerer også en makroWCOREDUMP ( status ) for å teste om barnet prosesserer dumpet kjerne. Bruk bare dette vedlagt i #ifdef WCOREDUMP … #endif. Prosess ID av barnet som avsluttet, eller null hvisWNOHANG ble brukt og ingen barn var tilgjengelig, eller -1 på feil (i så fall Feilkode er satt til en passende verdi). ECHILD hvis prosessen spesifisert i pid eksisterer ikke eller er ikke et barn i anropsprosessen. (Dette kan skje for sitt eget barn hvis handlingen for SIGCHLD er satt til SIG_IGN. Se også LINUX NOTES-delen om tråder.) EINVAL hvis opsjoner argumentet var ugyldig. EINTR hvisWNOHANG ikke satt og et ulåst signal eller aSIGCHLD ble tatt. Beskrivelse
Returverdi
feil




