waitpid
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
— | waitpid [2023/09/12 16:14] (atual) – criada - edição externa 127.0.0.1 | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Função waitpid ====== | ||
+ | |||
+ | |||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | int main(void) | ||
+ | { | ||
+ | pid_t iPid; | ||
+ | int iStatus; | ||
+ | |||
+ | |||
+ | if( (iPid = fork())< | ||
+ | { | ||
+ | perror(" | ||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | if( iPid != 0) /* no processo pai*/ | ||
+ | { | ||
+ | printf(" | ||
+ | while(1) | ||
+ | { | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | if( WIFEXITED(iStatus) ) | ||
+ | { | ||
+ | printf(" | ||
+ | printf(" | ||
+ | break; | ||
+ | } | ||
+ | if( WIFSIGNALED(iStatus) ) | ||
+ | { | ||
+ | printf(" | ||
+ | printf(" | ||
+ | break; | ||
+ | } | ||
+ | |||
+ | if( WIFSTOPPED(iStatus) ) | ||
+ | { | ||
+ | printf(" | ||
+ | printf(" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | else /* no processo filho */ | ||
+ | { | ||
+ | /* fica em loop esperando um sinal via comando kill ou ate terminar */ | ||
+ | int i; | ||
+ | printf(" | ||
+ | for(i=0; | ||
+ | { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | </ | ||