C++ 在linux中分叉子级后没有数据
有东西在我眼前,但我看不见C++ 在linux中分叉子级后没有数据,c++,linux,process,fork,C++,Linux,Process,Fork,有东西在我眼前,但我看不见 if (childpid == 0) { std::cout << "Hi" << std::endl; int rc = startDevice2( (char*)devices,ports); std::cout << rc << std::endl; } else
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;
}
因此,在我的stdout中没有看到rc=4,我什么也看不到。startDevice2已从另一个文件链接!!!Hi已打印,但rc未打印
怎么了?我希望在孩子的代码处看到rc,如果程序没有达到超过
startDevice2
的点,要么该函数需要很长时间才能完成,要么程序崩溃。您确定给定的参数正确吗?例如,您可能会抛出devices
参数
(假设“虚拟”
startDevice2
不是使用的真实设备)我是什么?什么是destinations.size()?你确定第一个比第二个大吗?没什么特别的。刚刚编辑了代码。I取多个值并大于10。是否检查了变量I
是否真的大于或等于destination.size()
?使用调试器或至少将cout
放入startServer
分支。如果没有看到任何内容,则根本不会点击else分支。在startServer
之前添加一些调试输出(例如cout No if else。直接进入代码。Hi由rc打印,而不是
int startDevice2(char* x, int port) { return 4;}