基础知识练习
士人有百折不回之真心,才有万变不穷之妙用。立业建功,事事要从实地着脚,若少慕声闻,便成伪果;讲道修德,念念要从虚处立基,若稍计功效,便落尘情。 ——菜根谭
读者:怎样读入一个对象文件并跳跃到其中的地址?
小林:你需要一个动态的连接程序或载入程序。也许可以 malloc 一段内存, 再读入对象文件, 但是你需要知道极多的有关对象文件格式、地址变换等知识。在 BSD Unix 下, 你可以使用 system() 和 ld -A 来实现连接。许多 SunOS 和System V 的版本有 -ldl 函数库, 允许动态载入对象文件。在 VMS 下, 使用LIB$FIND IMAGE SYMBOL。GNU 有个 dld 的包可以用。
读者:怎样很好地处理浮点异常?
小林:在许多系统中, 你可以定义一个 matherr() 的函数, 当出现某些浮点错误时 (例如 <math> 中的数学例程), 它就会被调用。你也可以使用 signal() 函数 截取 SIGFPE 信号。