所以我有这个奇怪的问题,我不能为我的生活弄清楚。我到处搜索,但似乎无法找到解决方案。在Code :: Blocks上运行此代码(完整代码片段)将完全运行它直到终止。但是,在终端(./Program_name)上运行它将导致它在服务器断开连接后退出(请参阅**代码注释)。
为什么我的程序在Code :: Blocks上的运行方式与在终端上的运行方式不同?
int main()
{
//Rest of my code goes here
while(1)
{
camera.takePicture(imageData);
if (write(serverConnection, std::to_string(imageData.size()).c_str(), 6) <= 0)
{
//**Program does not pass here when running on terminal
std::cout << "Shutting down Rover program: Server Disconnected"<<std::endl;
break;
}
write(serverConnection, &imageData[0], imageData.size());
}
std::cout << "Exiting program"<<std::endl;
std::cin.get();
t1.join();
close(serverConnection);
shutdown(serverConnection, 0);
return EXIT_SUCCESS;
}