Linux または Mac での検疫環境の設定

Linux または Mac での検疫環境の設定

何度でもフォークできるコードやプログラムをテストできるように、隔離環境を設定するにはどうすればよいでしょうか。私はこれを 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 であるため、スクリプトは無限ループにロックされます。

関連情報