在Linux中的c程序的典型内存分布中,之前提到的有 text段、data段、bss段、堆和栈这几部分,在笔记“麦子学院c语言->典型c语言程序的c内存分布”中介绍了。但是其实一个c语言进程的内存分布中不止是有这些区域,还有命令行参数、环境变量以及共享库和mmap映射区等区域。如下图所示 环境变量区 ...
分类:
系统相关 时间:
2016-10-01 16:48:24
阅读次数:
232
继续完善Hello World,建立它的共享库, 包括静态库和动态库。 本节的任务: 1,建立一个静态库和动态库,提供HelloFunc函数供其他程序编程使用,HelloFunc 向终端输出Hello World字符串。 2,安装头文件与共享库。 3, 编写一个程序使用创建的共享库(静态库和动态库) ...
分类:
其他好文 时间:
2016-09-24 23:12:08
阅读次数:
372
一、基础及正向区域配置1、首先安装bind(以cnetos6.7为例)[root@centfils~]#yuminstallbind-y
#bind主要为Linux主机提供DNS解析服务,程序包名为bind,程序名为named
#主要安装的程序包为:bind,bind-libs(提供共享库),bind-utils(提供测试解析工具);2、先备份主配置文件..
分类:
其他好文 时间:
2016-09-12 22:40:18
阅读次数:
279
mylog.h mylog.c makefile ...
分类:
系统相关 时间:
2016-09-08 00:42:28
阅读次数:
212
库:lib 共享库:.so ,shared object, 权限: 用户,获取资源,服务的标识符 组,指派权限,标识符 Linux权限 文件属主,文件的所有者 文件属组, 其他用户, r,w,x 文件: r:可读 w:可写,可以编辑或删除此文件 x:excutable,可执行,提交给内核运行 目录: ...
分类:
系统相关 时间:
2016-09-03 21:12:07
阅读次数:
229
1.通过wget命令download你要安装的node版本的源码到本机 2.解压后源码文件结构如图所示: Linux下一些代码文件格式 后缀名为.o是目标文件,类似于windows中的.obj文件 .so为shared object的缩写,是共享库文件,用于动态连接的,类似于.dll动态链接库文件 ...
分类:
系统相关 时间:
2016-09-02 13:15:00
阅读次数:
243
操作系统利用体系结构提供的VA到PA的转换机制实现虚拟内存管理。有了共享库的基础之后我们可以进一步理解虚拟内存管理了。首先分析例子: 【实际与上图存在出入,为方便下面的描述采用原书截图】 用ps命令查看当前终端下的进程,得知bash的进程id是29977,然后用cat /proc/29977/map ...
分类:
其他好文 时间:
2016-08-31 00:29:23
阅读次数:
242
一、编译、链接、运行 目录结构为: |–main.c |–stack |–is_empty.c |–pop.c |–push.c |–stack.c |–stack.h 组成共享库的目标文件和一般的目标文件有所不同,在编译时要加-fPIC选项,例: 【实际以上命令在运行时并没有生成共享库,详见《链接 ...
分类:
其他好文 时间:
2016-08-31 00:17:02
阅读次数:
329
ELF文件格式是一个开发标准,各种UNIX系统的可执行文件都采用ELF格式,它有三种不同的类型: 可重定位的目标文件 可执行文件 共享库 现在分析一下上一篇文章中经过汇编之后生成的目标文件max.o和链接之后生成的可执行文件max的格式,从而理解汇编、链接和加载执行的过程。 一、目标文件 ELF文件 ...
分类:
其他好文 时间:
2016-08-13 22:36:02
阅读次数:
293