我眼前有些东西,但我看不到。
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/