达尔文op2官方代码解读(三)之信号处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ben_xiao_hai_123/article/details/78603111

1.达尔文op2机器人官方代码刚开头时有几个信号处理函数:

///////////////////////////////SIGNAL//PROCESS////////////////////////////////////////////////
    signal(SIGABRT, &sighandler);
    signal(SIGTERM, &sighandler);
    signal(SIGQUIT, &sighandler);
    signal(SIGINT, &sighandler);
/////////////////////////////////////////////////////////////////////////////////////////////

这是为了处理在函数运行过程中处理外部信号起作用的。

2.顺带安利一个截图软件:scrot  

安装:sudo apt-get install scrot  

用法:scrot -s  即可截取指定矩形的图片,用鼠标拉即可

3.信号大全:

4.程序中信号讲解:

1). SIGINT
程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。

2). SIGQUIT
和SIGINT类似, 但由QUIT字符(通常是Ctrl-/)来控制. 进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号。

3).SIGTERM
程序结束(terminate)信号, 与SIGKILL不同的是该信号可以被阻塞和处理。通常用来要求程序自己正常退出,shell命令kill缺省产生这个信号。如果进程终止不了,我们才会尝试SIGKILL。

4). SIGABRT
调用abort函数生成的信号。

5.信号处理函数

void sighandler(int sig)
{
    exit(0);
}
用法:exit(0):正常运行程序并退出程序;

猜你喜欢

转载自blog.csdn.net/ben_xiao_hai_123/article/details/78603111