在 Linux 或 Mac 上设置隔离环境

在 Linux 或 Mac 上设置隔离环境

如何设置隔离环境,以便测试可以多次 fork 的代码或程序?我在 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。

相关内容