Se chamarmos o método fork() dentro de uma instrução if, o processo filho gerado entrará na instrução else?
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
int main(void){
int c = rand() % 50;
if( c == 0 ){
int k = fork();
}
else{
printf("ELSE");
}
return 0;
}
Depois que o fork () é executado, o processo filho imprime a mensagem "ELSE"?
Não.
O processo filho se encontrará exatamente no mesmo ponto do código que o pai no momento do
fork()
. A única diferença no estado de pai e filho é o valor de retorno dafork()
chamada, atribuídok
em seu código (isso manterá o PID do filho no processo pai e será zero no processo filho). Sefork()
isso acontecer, nem os pais nem os filhos chegarão àprintf()
declaração.A maneira usual de fazer a
fork()
é