g*****a 发帖数: 7 | 1 编译执行如下的c程序
int main() { a=1/0;}
会在屏幕上出现一行
Floating point exception
问这行是如何出现的
输出这行的代码是运行在用户空间还是核空间
你能在一台linux机器上找到它的源代码吗?
int main() {char *p = NULL, *p ='a'; }
会在屏幕上出现一行
Segmentation fault
问这行是如何出现的
输出这行的代码是运行在用户空间还是核空间
你能在一台linux机器上找到它的源代码吗?
和上面Floating point exception有什么不同? |
d**********x 发帖数: 4083 | 2 floating number...不应该是divided by zero嘛
cpu产生的,os告诉你,你没法handle的。
【在 g*****a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 编译执行如下的c程序 : int main() { a=1/0;} : 会在屏幕上出现一行 : Floating point exception : 问这行是如何出现的 : 输出这行的代码是运行在用户空间还是核空间 : 你能在一台linux机器上找到它的源代码吗? : int main() {char *p = NULL, *p ='a'; } : 会在屏幕上出现一行 : Segmentation fault
|
t****t 发帖数: 6806 | 3 1. default sigfpe handler
2. default sigsegv handler
both signals are likely from faults generated by CPU and caught by OS. OS wi
ll translate the faults to signal and generate the signal to the violating p
rocess. the process will be redirected to the corresponding signal handler (
given the mask and everything is ok). the default signal handler is likely i
n libc.
【在 g*****a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 编译执行如下的c程序 : int main() { a=1/0;} : 会在屏幕上出现一行 : Floating point exception : 问这行是如何出现的 : 输出这行的代码是运行在用户空间还是核空间 : 你能在一台linux机器上找到它的源代码吗? : int main() {char *p = NULL, *p ='a'; } : 会在屏幕上出现一行 : Segmentation fault
|
l*********8 发帖数: 4642 | 4 c库函数里面的signal函数可以重新设置handler.
【在 d**********x 的大作中提到】![](/moin_static193/solenoid/img/up.png) : floating number...不应该是divided by zero嘛 : cpu产生的,os告诉你,你没法handle的。
|
g*****a 发帖数: 7 | 5 被追问及当“事件”发生时,the default signal handler是如何被找到的,换句话说
,是什么数据结构里存放signal handler的指针的?这个数据结构是何时被谁初始化的
?初始化时为什么指向你说的哪个函数?这是谁决定的?编译器?C库?OS?...
你能找到default signal handler的具体实现吗?in linux kernel source code, gcc
source code,glibc source code?
wi
p
(
i
【在 t****t 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 1. default sigfpe handler : 2. default sigsegv handler : both signals are likely from faults generated by CPU and caught by OS. OS wi : ll translate the faults to signal and generate the signal to the violating p : rocess. the process will be redirected to the corresponding signal handler ( : given the mask and everything is ok). the default signal handler is likely i : n libc.
|
t****t 发帖数: 6806 | 6 莫非你拿BBS上的答案回给面试官? 然后再上这儿来找反馈?
gcc
【在 g*****a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 被追问及当“事件”发生时,the default signal handler是如何被找到的,换句话说 : ,是什么数据结构里存放signal handler的指针的?这个数据结构是何时被谁初始化的 : ?初始化时为什么指向你说的哪个函数?这是谁决定的?编译器?C库?OS?... : 你能找到default signal handler的具体实现吗?in linux kernel source code, gcc : source code,glibc source code? : : wi : p : ( : i
|
g*****a 发帖数: 7 | 7 不是啦,当场回答出一些,有些象你的答案,可是卡在追问上,其实原帖中已提到了,
也就是“你能在一台linux机器上找到它的源代码吗?”给了台机器让我找code
path
【在 t****t 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 莫非你拿BBS上的答案回给面试官? 然后再上这儿来找反馈? : : gcc
|
N*******Y 发帖数: 94 | 8 哈,刚被问过
【在 g*****a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 编译执行如下的c程序 : int main() { a=1/0;} : 会在屏幕上出现一行 : Floating point exception : 问这行是如何出现的 : 输出这行的代码是运行在用户空间还是核空间 : 你能在一台linux机器上找到它的源代码吗? : int main() {char *p = NULL, *p ='a'; } : 会在屏幕上出现一行 : Segmentation fault
|