在linux中分配一个孩子后没有数据

时间:2011-12-11 14:46:36

标签: c++ linux process fork

有些东西在我眼前,但我看不到它。

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,我什么都没看到。 startDevice2从另一个文件链接。 !嗨是打印但是rc在NOT中。

出了什么问题?我期待在孩子的代码中看到rc

1 个答案:

答案 0 :(得分:0)

如果程序未达到startDevice2之后的某个点,则该功能需要很长时间才能完成,否则会导致程序崩溃。您确定给出的参数是否正确?例如,您怀疑是否投了devices参数。

(假设“虚拟”startDevice2不是真正使用的那个)