2012年10月2日

静态库

摘要: http://www.eefocus.com/article/09-11/85659s.html?clear=t有时候需要把一组代码编译成一个库,这个库在很多项目中都要用到,例如libc就是这样一个库,我们在不同的程序中都会用到libc中的库函数(例如printf),也会用到libc中的变量(例如以后要讲到的environ变量)。本节介绍怎么创建这样一个库。我们继续用stack.c的例子。为了便于理解,我们把stack.c拆成四个程序文件(虽然实际上没太大必要),把main.c改得简单一些,头文件stack.h不变,本节用到的代码如下所示:这些文件的目录结构是: .我们把stack.c、pus 阅读全文

posted @ 2012-10-02 18:38 weiweishuo 阅读(240) 评论(0) 推荐(0) 编辑

谈谈我对攻读计算机研究生的看法

摘要: 就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可。 如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择。因为计算机学院才能让你在理论上更上一层楼。软件学院从教学计划上就没有把你往这方面带。当然能不能更上一层楼最终还是完全取决于你自己。需要特别说明的是,工作经验并不一定等于开发经验,我见过很多工作2-3年的人,但是没有一点开发经验。 你说:“他们都有很强的开发能力,只是不太喜欢读书,也只是希望混个学历对今后在岗位上晋升有好处”,我可以向你保证,你所说的人绝对不是开发能力很强的人。因为,1)高手不可能不喜欢读... 阅读全文

posted @ 2012-10-02 09:39 weiweishuo 阅读(212) 评论(0) 推荐(0) 编辑

2012年10月1日

tips for C

摘要: 1,如果将typeof用于表达式,则该表达式不会执行。只会得到该表达式的类型。2,ld链接静态库时一定要先-o,再-l。因为此时ld不再像链接动态库时那样能自动调整依赖顺序。3,printf("%f",1/2);输出是0.5么,不,输出0。想输出0.5,这样写,printf("%f",(doublle)1/(double)/2);这应是c语言把数值常量默认为int类型的缘故,int类型运算,结果0.5取整自然是0了。4,C99标准的规定,'a'叫做整型字符常量(integercharacterconstant),被看成是int型,所以在3 阅读全文

posted @ 2012-10-01 08:29 weiweishuo 阅读(151) 评论(0) 推荐(0) 编辑

void*指针的由来

摘要: 【转载】http://blog.csdn.net/mhjcumt/article/details/7355127int a=1;int *p = &a;float *p1 = (float*)p;则p和p1的值都是&a,但是*p是将&a地址中的值按照int型变量进行解释,而*p1则是将&a地址中的值按照float型变量进行解释。鉴于指针之间这种灵活的强制类型转换的需求和出于简化代码的考虑,ANSI C引入了空指针即void*。void指针又名万能指针,在现在的很多程序中,当参数不确定时就用万能指针代替,这一类的指针在线程\进程函数里特别常见。ANSI C规定,v 阅读全文

posted @ 2012-10-01 08:23 weiweishuo 阅读(220) 评论(0) 推荐(0) 编辑

2012年9月30日

ELF(Executable and Linking Format)

摘要: http://hi.baidu.com/zengzhaonong/item/32b06adfecdb774edcf9be78【来源】 现代Linux采用ELF(Executable and Linking Format)做为其可连接和可执行文件的格式,因此ELF格式也向我们透出了一点Linux核内的情景,就像戏台维幕留下的一条未拉严的缝。 PC世界32仍是主流,但64位的脚步却已如此的逼近。如果你对Windows比较熟悉,本文还将时时把你带回到PE中,在它们的相似之处稍做比较。ELF文件以“ELF头”开始,后面可选择的跟随着程序头和节头。地理学用等高线与等温线分别展示同一地区的地势和气候,程序 阅读全文

posted @ 2012-09-30 20:20 weiweishuo 阅读(658) 评论(0) 推荐(0) 编辑

Linux下的ELF文件格式简介

摘要: 发布时间:2002.01.26 12:20 来源:开放系统世界作者:杜昆1. 概述Executable and linking format(ELF)文件是x86 Linux系统下的一种常用目标文件(object file)格式,有三种主要类型:(1)适于连接的可重定位文件(relocatable file),可与其它目标文件一起创建可执行文件和共享目标文件。(2)适于执行的可执行文件(executable file),用于提供程序的进程映像,加载的内存执行。(3)共享目标文件(shared object file),连接器可将它与其它可重定位文件和共享目标文件连接成其它的目标文件,动态连接器 阅读全文

posted @ 2012-09-30 14:34 weiweishuo 阅读(338) 评论(0) 推荐(0) 编辑

可执行文件elf的格式

摘要: 我就喜欢这种用标准国文说话(非翻译体),又言之有物的文章,读起来心里是感激的http://blog.chinaunix.net/uid-20221893-id-1716166.html-------------------------------------------------------------------------------------------------------------------------------By WSW机器执行的是机器指令,而机器指令就是一堆二进制的数字。高级语言编写的程序之所以可以在不同的机器上移植就因为有为不同机器设计的编译器的存在。高级语言的编 阅读全文

posted @ 2012-09-30 12:26 weiweishuo 阅读(360) 评论(0) 推荐(0) 编辑

2012年9月28日

call Init8259A——痛定思痛,不要数典忘祖了

摘要: call Init8259A 这条指令出现在第三章的pmtest9.asm中,是典型的call+label实现段内近转移。 我第一眼看到这指令有点儿不敢认:这是保护模式下32位的代码段,这种转移还行得通?翻看80X86黑皮书,上面赫然写着:在保护方式下,段内无条件转移指令的方法未变。因而是行得通的。 基础不扎实就是这种样子。 顺便复习一下“call label”这种转移方式:“call label(将当前的IP入栈后,转到标号处执行指令)相当于进行 push IP jmp near ptr label” 阅读全文

posted @ 2012-09-28 20:52 weiweishuo 阅读(298) 评论(0) 推荐(0) 编辑

通过中断门或陷阱门的转移——【只上传好图一张】

摘要: 上述的流程,全部硬件机制实现的。这张图十分好。 阅读全文

posted @ 2012-09-28 09:19 weiweishuo 阅读(138) 评论(0) 推荐(0) 编辑

2012年9月27日

orange's习题——第三章【中断和异常】

摘要: 一,简答题1,说说80386下“中断”和“异常”的概念?答案:对80386而言,中断是由异步的外部事件引起的,与正在执行的指令没有关系。异常则是由指令执行期间检测到的不正常或非法的条件引起的,它与正在执行的指令有直接关系。软中断指令“int n”和“into”也归于异常,这是因为执行这些指令产生异常事件。2,说说你对Fault,Trap,Abort的理解。答案:这三者是根据引起异常的程序是否可被恢复和恢复点的不同,把异常进一步细分的。 Fault是一种可被更正的异常,当一个fault发生时,处理器会把fault指令的源操作数恢复为指令开始之前的值,所保存断点cs及eip的值指向引起fault的 阅读全文

posted @ 2012-09-27 18:38 weiweishuo 阅读(332) 评论(0) 推荐(0) 编辑

导航