何度でもフォークできるコードやプログラムをテストできるように、隔離環境を設定するにはどうすればよいでしょうか。私はこれを Mac で試していましたが、while ループ内に適切にバインドされていないフォークがあると、ターミナルがフリーズし、フォーク リソースが一時的に使用できないと表示されます。その場合、ps や kill も使用できず、遭遇するたびにオフにする必要があります。
また、_exit(3) を使用して子プロセスを終了しようとしていますが、間違っている可能性があります。誰か助けてくれませんか?
私が試していたコードは次のとおりです。
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;
}
答え1
pid==0 は方程式ですが、ブール値であり常に FALSE であるため、スクリプトは無限ループにロックされます。