《深入理解计算机系统》家庭作业* 8.9答案:进程对是否并发AB否AC是AD是BC是BD是CD是* 8.10答案:A. 调用一次,返回两次: forkB. 调用一次,从不返回: execve, longjmpC. 调用一次,返回一次或者多次: setjmp* 8.11答案:这个程序会输出4个“hel...
分类:
其他好文 时间:
2015-12-04 22:26:20
阅读次数:
185
setjmp与longjmp是属于C语言中的,当然,C++也会有这两个函数了。他们的原型如下:int setjmp( jmp_buf env );作用:第一次调佣时,将寄存器的当前状态信息全部存入到env中,并返回0。如果在某处调用了longjmp(env,x),且x!=0,则setjmp的返回值将...
分类:
其他好文 时间:
2015-11-15 09:40:17
阅读次数:
301
这一章的学习让我了解到进程典型存储空间环境变量和命令行参数是如何传递给进程的进程正常终止的5种形式和异常终止的3种形式如何动态分配给进程额外的存储空间setjmp和longjmp函数及它们与栈的交互,以及对auto register volatile static global 5种类型变量的状态影...
分类:
其他好文 时间:
2015-10-07 00:59:35
阅读次数:
241
异常?C语言中我们如何管控(处理)运行期间的运行异常方案1.通过返回值表达错误。程序中必须层层判断返回值,流程繁琐。方案2.采用里面定义的setjmp/longjmp通过保存函数调用栈来实现远程跳转。这样就可以实现一步到位进入错误处理,流程简单。 1 /*方案2应用举例: 2 * Filename....
分类:
编程语言 时间:
2015-08-21 07:05:23
阅读次数:
245
异常一、为什么要有异常——WHY?1.通过返回值表达错误局部对象都能正确的析构层层判断返回值,流程繁琐2.采用里面定义的setjmp/longjmp远程跳转一步到位进入错误处理,流程简单setjmp是给C程序员使用的,根本没有考虑到C++程序员定义的类类型,直接采用setjmp实现跳转会使得某些对象...
分类:
编程语言 时间:
2015-08-21 07:05:11
阅读次数:
196
一,相关函数接口1,setjmp,longjmp,sigsetjmp,siglongjmp #include int setjmp(jmp_buf env); int sigsetjmp(sigjmp_buf env, int savesigs); //savesigs非0时,在env中保存...
分类:
其他好文 时间:
2015-08-14 11:22:14
阅读次数:
119
《More Effective C++》ITEM M9他提到auto_ptr。说是当异常产生的时候。怎么释放为对象分配的堆内存,避免反复编写内存释放语句。PS:这里书里面提到函数退出问题,函数退出会清理栈内存,无论是怎么正常退出还是异常退出(仅有一种例外就是当你调用 longjmp 时。Longjm...
分类:
编程语言 时间:
2015-08-08 11:41:18
阅读次数:
144
问题描述:当我们如下Oracle sqlplus登录时出现无法定位程序输入点longjmp于动态链接库D:\app\porry\product\11.2.0\dbhome_1\bin\oracore11.dll上的错误提示。
或者,在利用Oracle PL/SQL Developer客户端登录时出现 ora-12514错误提示,但是TNS配置没有错...
分类:
数据库 时间:
2015-07-11 21:32:20
阅读次数:
624
错误情况及原因分析 前两天看APUE的时候,有个程序要自己制作一个sleep程序,结果在这个程序中就出现了在信号处理函数中调用longjmp函数的情况,结果就出现了错误,具体错误是啥呢,请参见下面这段程序: 1 /* 2 * 在信号处理函数中调用longjmp的错误情况 3 ...
分类:
其他好文 时间:
2015-06-21 09:16:01
阅读次数:
247
goto语句可以用于同一个函数内异常处理,不幸的是,goto是本地的,它只能跳到所在函数内部的标号上。为了解决这个限制,C函数库提供了setjmp()和longjmp()函数,它们分别承担非局部标号和goto作用。头文件申明了这些函数及同时所需的jmp_buf数据类型。 1.setjmp(jbuf)...
分类:
其他好文 时间:
2015-05-13 16:21:14
阅读次数:
155