#include #include #include #include #include #include voidsigfunc(intsig){printf("recvasignal%d\n",sig);abort();}intmain(void){signal(SIGSEGV,sigfunc);charsz[10]={0};printf("cpybegin111111111\n");strcpy(sz,"helloliwq,helloliwq,helloliwq");printf("cpyend2222222\n");printf("pid%d\n",getpid());printf("ok1111111111\n");sleep(3);printf("ok2222222222\n");sleep(500);printf("ok3333333333\n");return0;}不知道是和系统有关系么?在我的机器上运行到结束以后才会处理内存越界的信号。信号是在内核态向用户态切换前处理的吧,那这段代码就没有切换到内核态运行过么,sleep了这么久,就一直占用CPU,没有被调度过么?请大神们帮解答一下!!!
慕标5832272
相关分类