如何設定隔離環境,以便測試可以分叉任意次數的程式碼或程式?我在 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。