【发布时间】:2011-04-23 05:27:55
【问题描述】:
使用 getrlimit(RLIMIT_MEMLOCK),可以获得一个进程可以分配的允许的锁定内存量(mlock() 或 mlockall())。
但是如何找回当前锁定的内存量呢?
例如,getrusage() 没有返回任何信息。
在 Linux 下,可以读取 /proc/self/status 并从 VmLck 开头的行中提取锁定的内存量。
是否有一种可移植的方式来检索适用于 Linux、*BSD 和其他 POSIX 兼容系统的锁定内存量?
【问题讨论】:
-
POSIX 指定调用 mlock 和 mlockall 如果未实现调用将失败并出现 ENOSYS。这意味着没有保证用于锁定/解锁的便携式接口,在保证实现的意义上是便携式的。还。没有 POSIX 指定的方法来枚举进程内存的锁定页。