编程接口指南

其他内存控制接口

本节介绍其他内存控制接口。

使用 sysconf

sysconf(3C) 可用于返回与系统相关的内存页的大小。为便于移植,应用程序不应嵌入用于指定页面大小的任何常量。请注意,即使在相同指令集的执行中,变化的页面大小也很常见。

使用 mprotect

mprotect(2) 可用于为指定地址范围内的所有页面提供指定的保护。保护不能超出底层对象所允许的权限。

使用 brksbrk

中断点 (break) 是进程映像中栈外部的最大的有效数据地址。程序开始执行时,execve(2) 通常会将中断点 (break) 值设置为程序及其数据存储所定义的最大地址。

使用 brk(2) 可将中断点 (break) 设置为更大的地址。您还可以使用 sbrk(2) 向进程的数据段中添加一个存储增量。通过调用 getrlimit(2) 可以获取数据段的最大可能大小。

caddr_t

 brk(caddr_t addr);



 caddr_t

 sbrk(intptr_t incr); 

brk 可用于将调用方未使用的最低数据段位置标识为 addr。此位置会向上舍入为系统页面大小的下一个倍数。

备用接口 sbrk 可用于向调用方数据空间中添加 incr 个字节,并返回指向新数据区域开头的指针。