?前言
硬件异常被硬件以某种⽅式被硬件检测到并通知内核,然后内核向当前进程发送适当的信号。例如当前进程执⾏了除以0的指令,cpu的运算单元会产⽣异常,内核将这个异常解释为sigfpe信号发送给进程。再⽐如当前进程访问了⾮法内存地址,mmu会产⽣异常,内核将这个异常解释为sigsegv信号发送给进程。
?模拟除0

代码语言:javascript代码运行次数:0运行复制
#include <iostream>#include <string>#include <sys>#include <unistd.h>#include <wait.h>int main(){ if(fork() == 0) { sleep(1); int a = 10; a /= 0; exit(0); } int status = 0; waitpid(-1, &status, 0); printf("exit sinal: %d, core dump: %dn", status&0x7F,(status>>7)&1); return 0;}</wait.h></unistd.h></sys></string></iostream>登录后复制
文章来自互联网,只做分享使用。发布者:,转转请注明出处:https://www.dingdanghao.com/article/850979.html
