Ответ 1
Вам, вероятно, потребуется проверить каждую систему и выполнить ее соответствующим образом. В 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"
}