setjmp在非主函数中调用
摘要:
一个进程的正常结束方式应当是从main函数调用exit返回(一般情况下),若是进程在main函数中调用longjmp进入了其他函数会发生什么情况呢? 程序的逻辑布局一般包括代码段、数据段、栈、堆...代码段是程序的指令集合。当一个函数被调用的时候,当前执行指令会跳转到被调用函数所对应代码段。而在跳转之前,会开辟一个该函数的栈帧,函数的返回地址(即当该函数执行完所应返回的地址)以及函数中所有的局部变量都会被保存于此栈,而这所有的动作被执行的前提是该函数显式的被调用。那么回到刚才的问题,在main函数中调用longjmp进入其他函数的时候,该函数不是被显示的调用,所以,该函数没有对应的栈帧,... 阅读全文
posted @ 2011-12-08 00:55 弗远 阅读(225) 评论(0) 推荐(0) 编辑