1

Как я могу настроить среду карантина, чтобы я мог тестировать свои коды или программы, которые могут разветвляться любое количество раз? Я пытался сделать это на 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 ответ1

0

pid == 0 блокирует ваш скрипт в бесконечном цикле, так как pid = 0 - это уравнение, но pid == 0 - логическое значение и всегда FALSE.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .