随笔分类 -  C & Linux

摘要:这是慕课的一门编译原理的网课的第一次实践作业 github 地址如下 sumlanguage 首先我们将文法翻译成数据结构 将目标机器上的指令也翻译成数据结构 如下是对sumlanguage的文法的翻译 该语言有两种具体表达式,一种是 一个int表达式 另一种是sum表达式 以及一种抽象的表达式 其 阅读全文
posted @ 2018-03-21 09:37 lan126 阅读(288) 评论(0) 推荐(0)
摘要:由点分十进制转成16进制 思路是获得点分十进制的字符串后由inet_pton函数将该字符串转换成 一个二进制数组由val存储 然后用"%02x"格式字符串来打印出来它的flags为0即用零填充 width为2即宽最小为2不足则填充 这个过程则是与上面相反的过程 首先得到hexstring即16进制的 阅读全文
posted @ 2018-02-11 20:48 lan126 阅读(690) 评论(0) 推荐(0)
摘要:没有什么难以理解的地方 下面是memlib 注意MAX_HEAP 不要取太大不然开不了 加上相应的库函数就可以运行了.不过问题是mm_free有没有很好的工作我还没想到很好的方法检验. 阅读全文
posted @ 2018-02-04 16:34 lan126 阅读(215) 评论(0) 推荐(0)
摘要:1.利用signal函数注册一个信号处理函数handler当收到相应的信号时,不终止程序而是给出友好的提示信息,这里对一个空指针赋值会产生一个segment violation错误 被hanler函数捕捉后通过s的值得到相应的提示 2.利用longjmp和setjmp实现接受一个信号后重启一个进程 阅读全文
posted @ 2018-02-01 17:48 lan126 阅读(181) 评论(0) 推荐(0)
摘要:1.直接用fopen打开文件利用返回的指针读取全部的数据 2.通过mmap将硬盘中的文件映射到虚拟内存中,然后读该文件的时候会产生缺页异常,缺页处理程序将硬盘中的文件缓存到内存中,当处理程序返回时,CPU再次执行当前的那条指令 然后就可以读到该文件了.和直接读的区别在网上查了一下是这种映射可以节约一 阅读全文
posted @ 2018-02-01 17:32 lan126 阅读(297) 评论(0) 推荐(0)
摘要:今天学习专家c的运行时数据结构,顺便简单地学习了一下nm命令 就目标文件而言,段是二进制文件中的简单区域里面保存了一定信息,section是ELF文件中最小组织单元,一个段包含几个section. nm命令的作用是显示对象文件,可执行文件以及对象文件库的符号信息.这里只对可执行文件的符号信息进行研究 阅读全文
posted @ 2018-01-17 22:10 lan126 阅读(359) 评论(0) 推荐(0)
摘要:今天在看了专家c的第四章后对数组和指针有了更深入的理解 首先 为什么会这样呢?指针和数组难道不就是一个玩意吗? 然而并不是. 先列出指针和数组的重要区别 | 指针 | 数组 | | 保存的是数据的地址 | 保存数据本身 | | 间接访问数据,首先在 | 首先在符号表中找到数组 | | 符号表中找到该 阅读全文
posted @ 2018-01-13 14:14 lan126 阅读(136) 评论(0) 推荐(0)
摘要:1 #include "stdio.h" 2 #include "stdlib.h" 3 4 /*int main(void) 5 { 6 char ch; 7 8 ch=getchar(); 9 putchar(ch); 10 } 11 */ 12 13 /*int main(void) 14 { 15 ... 阅读全文
posted @ 2017-02-09 23:13 lan126 阅读(147) 评论(0) 推荐(0)