linux程序
#include
#include
#include
int count=0;
void ctrl_c_count(int);
int main(void)
{
int c;
void (*old_handler)(int);
old_handler=signal(SIGINT,ctrl_c_count);
while((c=getchar()!=' '))
;
printf("Ctrl_C count=%d ",count);
signal(SIGINT,old_handler);
}
void ctrl_c_count(int i)
{
printf("Ctrl_C ");
count++;
}
这个程序的功能是研究 signal函数的应用
signal 函数是用于设置信号 量的处理函数为自定义的。
SIGINT是用户在终端上按下 ctrl+c的而产生信号量
它的系统默认的处理函数为终止正运 行的进程
现 在把它改成按 ctrl+c后,是全局变量 count加 1的操作
当用户在终端输入回车后该进程结束。
且又把 SIGINT的处理函数为默认的。
当把上述程序保存为 test.cpp时 ,注意这里保存的文件格式为
利用
产 生如下错误
/tmp/ccGsoxH2.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
解决方法用
为什么会出现这个错误:是因为你用 gcc编译 .cpp文件 .按系统默认 .cpp文件是 c++的文件格式
另一个方法是用 g++ -o test test .cpp 也是可以的
还有一种方法
如果你是把文件保存为 .c格式,反正里面全是 c的代码