我无法在/etc/security/limits.conf中使用“fileuser - memlock unlimited”分配100KB

时间:2013-10-02 19:17:03

标签: linux fedora ulimit limits

我在我的实验室中使用Fedora版本17(Beefy Miracle),我试图用mlock C函数阻止100KB的驻留内存,代码如下。

#include <sys/mman.h>


int main(){
char *p;
mlock(p, 100000);
sleep(100);
}

当我用gcc编译代码时,我看到了以下错误

gcc -o mymlock mymlock.c
strace -e mlock ./mlock 
mlock(0x4c668ff4, 100000)               = -1 ENOMEM (Cannot allocate memory)

如果我在limits.conf中有“fileuser - memlock unlimited”,为什么会出现此错误?

我的记忆力使用

[fileuser@Rossetti ~]$ free -m
         total       used       free     shared    buffers     cached
Mem:          2900       2674        226          0         58        957
-/+ buffers/cache:       1657       1242
Swap:         4927        146       4781

1 个答案:

答案 0 :(得分:2)

我的C代码错了,现在可以了

新代码

#include <sys/mman.h>
#include <limits.h>


int main(){
char *p = malloc(4096*1024);
mlock(p, (4096*1024));
sleep(100);
}