нет данных после разветвления ребенка в linux - PullRequest
0 голосов
/ 11 декабря 2011

Что-то перед моими глазами, но я этого не вижу.

if (childpid == 0)
        {
               std::cout << "Hi" << std::endl;
               int rc = startDevice2( (char*)devices,ports);
               std::cout << rc << std::endl;

        }
        else
        {
                waitpid (-1, NULL, 0);
                std::cout << "Parent process stops" << std::endl;
        }

Фигура startDevice2 выглядит следующим образом

int startDevice2(char* x, int port) { return 4;}

Так что вместо того, чтобы видеть rc = 4 в моем stdout, я ничего не вижу.startDevice2 связан с другим файлом.!!!Привет печатается, но RC не.

Что в этом плохого?Я ожидал увидеть rc в коде ребенка

1 Ответ

0 голосов
/ 11 декабря 2011

Если программа не достигает точки после startDevice2, либо выполнение этой функции занимает очень много времени, либо происходит сбой программы. Вы уверены, что указанные параметры верны? Например, подозрительно, что вы разыграли параметр devices.

(при условии, что "пустышка" startDevice2 не настоящая)

...