Examine o programa em C abaixo.#include <stdio.h>#incl...
Examine o programa em C abaixo.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define NUM_ADVOGADOS 3
void advogado(int id) (
printf("Advogado %d: Preparando argumentos\n", id);
usleep(rand() % 2000000 + 1000000); // Simula o tempo de preparação
printf("Advogado %d: Apresentando o caso ao tribunal\n", id) ;
usleep(rand() % 2000000 + 1000000); // Simula o tempo de apresentação
printf("Advogado %d: Caso resolvido\n", id);
}
int main() {
srand(time(NULL));
for (int i = 1; i <= NUM_ADVOGADOS; i ++) (
if (fork() == 0) (
}
}
// Código do processo pai (tribunal)
for (int i = 1; i <= NUM_ADVOGADOS; i ++) (
wait(NULL); // aguarda todos os processos filhos terminarem
}
printf("Todos os casos foram resolvidos.\n");
return 0;
}
Considerando que uma das saídas do programa acima, compilado e executado em condições ideais, seja:
Advogado 1: Preparando argumentos
Advogado 3: Preparando argumentos
Advogado 2: Preparando argumentos
Advogado 3: Apresentando o caso ao tribunal
Advogado 2: Apresentando o caso ao tribunal
Advogado 1: Apresentando o caso ao tribunal
Advogado 1: Caso resolvido
Advogado 3: Caso resolvido
Advogado 2: Caso resolvido
Todos os casos foram resolvidos.
A lacuna I deve ser corretamente preenchida com: