Você está na página 1de 1

Instante 0

bash (o terminal)
PID 90
Código
int main(int argc, char** argv) {
pai 0x4020 pid_t pid = fork();
0x4030 printf("forked pid=%d\n", pid);
código
0x4040 return 0;
PID 100
Memória
./program memória argc = 1
argv[0] = "program"
pid = /*indefinido*/
$pc = 0x4020 (program counter, )

Instante 1
bash (o terminal)
PID 90
Código Código
int main(int argc, char** argv) { int main(int argc, char** argv) {
pai 0x4020 pid_t pid = fork(); 0x4020 pid_t pid = fork();
0x4030 printf("forked pid=%d\n", pid); 0x4030 printf("forked pid=%d\n", pid);
código código
0x4040 return 0; 0x4040 return 0;
PID 100 PID 101
Memória Memória
./program memória argc = 1 memória argc = 1
argv[0] = "program" argv[0] = "program"
pid = 101 pid = 0
$pc = 0x4030 (program counter, ) $pc = 0x4030 (program counter, )

pai

Dica: No instante 1, cada um dos processos faz um printf diferente pois


o valor de pid difere entre os processos. Se no lugar de um printf fosse
um if, cada processo seguiria um caminho diferente, executando porções
distintas do código.

Você também pode gostar