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