目录
一、引入
我们先来看一段代码:
#include <stdio.h>
#include <signal.h>
int flag = 1;
void handler(int signo)
{
flag = 0;
printf("已收到%d号信号,flag:%d\n", signo, flag);
}
int main()
{
signal(2, handler);
while (flag);
printf("进程退出\n");
return 0;
}
我们编译一下运行:
可以看到当我们按下Ctrl+c传给进程2号信号时,进程执行了handler方法将全局变量flag改成了0,while循环条件不为真,循环结束进程退出
没问题,结果也符合我们的预期
下面我们在gcc后面加上-O选项来看看:
-O 是 gcc 编译器的一个优化选项,用于告诉编译器进行优化以提高程序的执行效率。
选项 -O 后面可以跟一个数字,表示优化级别。常见的优化级别包括 -O0、-O1、-O2 和 -O3,数字越大表示优化级别越高。