1
내 실험실에서 Fedora 릴리스 17 (Beefy Miracle)을 사용하고 있습니다. mlock C로 100KB의 상주 메모리를 차단하려고합니다. 함수의 코드는 다음과 같습니다. 의 limits.conf에서 - "무제한 memlock을 fileuser를"내가 만약 내가 GCC로 컴파일 된 코드를 /etc/security/limits.conf에 "fileuser - memlock t unlimited"로 100KB를 할당 할 수 없습니다.
#include <sys/mman.h>
int main(){
char *p;
mlock(p, 100000);
sleep(100);
}
은 내가
gcc -o mymlock mymlock.c
strace -e mlock ./mlock
mlock(0x4c668ff4, 100000) = -1 ENOMEM (Cannot allocate memory)
왜 내가이 오류가 않는 다음과 같은 오류를 보았다?
내 메모리 사용
[[email protected] ~]$ free -m
total used free shared buffers cached
Mem: 2900 2674 226 0 58 957
-/+ buffers/cache: 1657 1242
Swap: 4927 146 4781