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은 무한 루프에서 스크립트를 잠급니다. pid=0은 방정식이지만 pid==0은 부울이고 항상 FALSE이기 때문입니다.

관련 정보