проблема с созданием дочерних процессов в xcode - PullRequest
0 голосов
/ 16 июля 2011

Я пытаюсь написать и отладить код в Xcode, где я создаю несколько процессов (которые представляют узлы в сети) и где эти процессы должны использовать IPC для связи.сначала я получал сообщение об ошибке в своем msgctl, пытался отладить файл, используя fprintf, когда он прекратил все дочерние процессы, я написал printf в форме

pid[0]=fork();
if(pid[0]==0) {
    printf("chicken");
}

но ничего не печатается, поэтому я предполагаю, что дочерний процесс не создан ... кто-нибудь знает, что я должен делать?Спасибо

Ответы [ 2 ]

0 голосов
/ 25 апреля 2012

Вы должны написать что-то вроде этого

pid[0]=fork();

if(pid[0]==0)
    printf("chicken");

else if (pid[0] == -1)
    perror("fork");

Это напечатает сообщение, которое сообщит вам, в чем проблема, если fork не работал. Если он не распечатывает сообщение об ошибке, вилка работает правильно, и вы должны сбросить (stdout), как указано neoneye.

0 голосов
/ 16 июля 2011

может быть, вам нужно очистить стандартный вывод, как это

printf("chicken");
fflush(stdout);
...