前言
在 linux内存管理 (五) 6 用户空间 内存相关的系统调用中简述了在内存方面 内核空间 会给 应用空间提供什么服务,但是 应用空间会怎么使用内核空间提供的服务并没有提及
应用空间对 内存相关系统调用的使用
应用程序一般会使用 malloc free mmap munmap 这 四个函数 来 对 0-3G中的 heap段 进行操作
这4个函数是glibc提供的.
在内存方面,glibc除了提供这4个函数,还提供了哪些函数
可以看出 内核空间 提供了 很多 sys_xxx 的 系统调用
用户空间 调用 xxx函数的时候 (其中调用了 store xxx ; int 0x80 ),然后就进入了 内核空间中的 sys_xxx
而 用户空间的 xxx 一般 由 glibc 提供
这叫做 xxx 完成了 对 系统调用 sys_xxx 的封装
那么在 内存方面 内核空间有多少个 sys_xxx, glibc完成了 多少个 sys_xxx 的封装呢?
1. malloc 完成了 对 sys_brk 和 sys_mmap 的封装
2. mmap 完成了 对 sys_mmap 的封装
glibc提供的API
Glibc Manual描述了 glibc 的API
- 可通过其中的Appendix B Summary of Library Facilities按名称 索引
- 可以通过 章节目录 来 按分类 索引
Linux man-pages project 也大概描述了 glibc api 的接口
- 可在 man 3查看
api使用示例
- glibc_man_cn 有API使用示例