在终端中使用ctrl+c可以强制终止运行的程序,但有时需要在终止时作一些处理(如ros::shotdown,free等),可使用信号函数作退出处理
头文件
#include"csignal"
信号处理函数
void signalHandler(int signum)
{
ROS_INFO("%s is received, Terminating the node...",strsignal(signum));
ros::shutdown();
exit(signum);
}
使用
ros::init(argc,argv,"camera_Info_publisher");
ros::NodeHandle nh;
ROS_INFO("camInfo_pub node is running...");
signal(SIGINT,signalHandler);
|