- 博客(4)
- 收藏
- 关注
原创 Expert C Programming阅读笔记VI
Chapter 6 Poetry in Motion: Runtime Data Structuresa.out的缘由a.out - assembler and link editor output formatSegmentsUNIX的Segment和x86的Segment有着不同的含义。UNIX:二进制文件中的一些相关数据在一起形成一个Segment。x86:被分成64K地址空间的内存空间。U
2008-04-10 18:59:00 814
原创 Expert C Programming阅读笔记V
Chapter 5 Thinking of LinkingC编译器的结构C预处理器--前端(词法和语意分析)--后端(代码生成)--优化器--汇编器--链接器静态链接和动态链接静态链接时,库文件被附着在a.out中,反之,动态链接时,在运行时map相应的库。一般应当使用动态链接(附注:系统核心应当给一个静态链接,例如linux的应急shell busybox就应当静态链接库,因为有时候根文件系
2008-04-06 22:23:00 918
原创 Expert C Programming读书笔记IV
Chapter 4 Arrays are not Pointers!下列声明extern int* p;extern int q[];有着不同的意思。前者声明了一个指向int的指针,后者定义了一个大小未定的数组,这个数组存放位置在另外的地方。、Declaration and Definition声明(Declaration)是指:指定变量的类型,用来“引用”不在本地的实际的变量定义(Defin
2008-04-05 20:58:00 795
原创 Expert C Programming读书笔记III
其实看了很多了,一直没有笔记。The Early Bug gets() the Internet Worm本段主要讨论了缓冲区溢出造成的安全隐患。在栈上展开数组的时候,由于C语言对数组边界的检查几乎没有,所以很可能导致栈的溢出,进而使得别有用心的人执行一些非法代码。Finger是一个例子。解决的办法是,向数组赋值的时候(特别是字符串)限制一次读入数据的长度。Sins of Omissions1、在
2008-04-05 18:05:00 783
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人