您可能需要检查每个系统并相应地实施它。在 Linux 上:
cat /proc/$PID/status | grep VmLck
您可能需要在 C 中执行相同的操作(逐行读取/proc
并搜索VmLck
),因为此信息是在函数task_mem
(在array.c中)中创建的,我认为您无法直接访问该信息。就像是:
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
char cwd[PATH_MAX];
sprintf(cwd, "/proc/%d/status", getpid());
FILE* fp = fopen(cwd, "r");
if(!fp) {
exit(EXIT_FAILURE);
}
while((read = getline(&line, &len, fp)) != -1) {
// search for line starting by "VmLck"
}
Run Code Online (Sandbox Code Playgroud)