eph*_*ent 17
这应该可靠地导致SIGBUS符合POSIX的系统.
#include <unistd.h>
#include <stdio.h>
#include <sys/mman.h>
int main() {
FILE *f = tmpfile();
int *m = mmap(0, 4, PROT_WRITE, MAP_PRIVATE, fileno(f), 0);
*m = 0;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
从单Unix规范,mmap:
从pa开始并且在对象结束之后继续len字节到整个页面的地址范围内的引用将导致SIGBUS信号的传递.
Ign*_*ams 12
只能在以下硬件平台上调用总线错误:
您可能无法访问此类系统.
尝试以下方面的事情:
#include <signal.h>
int main(void)
{
raise(SIGBUS);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
(我知道,可能不是你想要的答案,但几乎可以肯定会给你一个"总线错误"!)