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

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是从另一个文件链接的。 !!! Hi已打印,但rc在NOT中。

怎么了我期待在孩子的代码上看到rc

最佳答案

如果程序没有达到startDevice2之后的位置,则该函数需要很长时间才能完成,否则会使程序崩溃。您确定给定的参数正确吗?例如,您强制转换了devices参数。

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

关于c++ - 在Linux中 fork child 后没有数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8464817/

10-11 21:48