在 Linux 或 Mac 上設定隔離環境

在 Linux 或 Mac 上設定隔離環境

如何設定隔離環境,以便測試可以分叉任意次數的程式碼或程式?我在 Mac 上嘗試了這個,如果我在 while 循環中有一個未正確綁定的 fork,它會使終端凍結並顯示 fork 資源暫時不可用。在這種情況下,我什至無法使用 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 將腳本鎖定在無限循環中,因為 pid=0 是方程式,但 pid==0 是一個布林值並且始終為 FALSE。

相關內容