У меня есть классический код ветвления для C-программы следующим образом:
int status;
if((pid = fork()) < 0)
{
printf("SOME fork() ERROR...\n");
}
else if(pid == 0)
{
//Child stuff
printf("CHILD CODE\n");
}
else
{
//parent stuff
printf("PARENT CODE\n");
while (wait(&status) != pid);
}
Он компилируется нормально, и я запускал его для выполнения некоторых тестов, пока что-то, чего я не понимаю, вдруг произошло:Терминал я видел только написано "КОД РОДИТЕЛЯ".Как я понимаю, если дочерний процесс не создан, «SOME fork () ERROR ...» и «PARENT CODE» должны отображаться на экране.(Это правда?) Но появляется только последнее.Моей первой мыслью было мммм ... вилка удалась, но ребенок не выполняет свой код ??????????Это вообще возможно?
Спасибо за ваше время и помощь.
Редактировать: переменная status и wait (...) находятся в программе, я печатаю сообщения только для того, чтобы посмотреть, чтопроисходит проще.
Это HP-UX 11
Спасибо всем за ответы.