摘要:
fflush 是 C 标准库提供的函数,对输入输出流起作用,起作用的是C标准库管理的用户空间文件缓存。对输出流来说,会使用系统提供的写文件系统调用(write)把标准库缓存的数据写入文件,fflush并不能保证数据真正的写入文件系统。对输入流来说,会把从可寻址的文件读入标准库缓存的数据给清洗掉。 s 阅读全文
摘要:
通常来说,函数中的局部变量在函数调用结束的时候不能再被引用,所分配的空间也会被回收。 但是通过闭包这种技术,函数调用结束了,它的局部变量的值还可以保存在闭包里。 试举一例: 在函数make_adder中n就是一个局部变量,但是通过调用make_adder,它返回了一个闭包,在这个闭包里会保存n的值。 阅读全文
摘要:
在仔细研究这个问题之前,我认为 C 程序在内存中只有代码段,堆和栈三部分构成。前几天面试被问到了这个问题,才发现自己的印象是不完全的。 在本文中通过解析析一个 C 程序中变量和函数的地址来分析 C 程序在内存中的布局。 首先简单介绍一下Linux上C程序的内存分布。 一般情况下从低地址到高地址分布着 阅读全文