Como posso configurar um ambiente de quarentena para poder testar meus códigos ou programas que podem ser bifurcados inúmeras vezes? Eu estava tentando isso no Mac e se eu tiver um fork em um loop while que não esteja vinculado corretamente, o terminal congelará e exibirá o recurso fork temporariamente indisponível. Nesse caso, não consigo nem usar ps ou kill e tenho que desligar toda vez que o encontro.
Além disso, estou tentando encerrar meu processo filho usando _exit(3) - posso estar fazendo isso errado. Alguém pode me ajudar com isso?
Aqui está o código que eu estava tentando.
pid = fork();
if(pid > 0){
if(findCharInString(';',input)){
printf("Two commands %s\n",input );
sleep(1);
_exit(3);
}
else{
system(input);
}
}
if(pid == 0){
return 0;
}
Responder1
pid==0 bloqueia seu script em loop infinito, pois pid=0 é uma equação, mas pid==0 é booleano e sempre FALSO.