ulimit和getrlimit

ybxuwei 2014-05-09 05:27:07
执行ulimit -f 1024设置文件大小限制
然后getrlimit 获取RLIMIT_FSIZE的限制,返回的值并不是1024
为什么? ulimit -f 和RLIMIT_FSIZE针对的不是同一个属性吗?
...全文
179 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
静之深 2014-05-11
  • 打赏
  • 举报
回复
yingc@yingc:~/gcyin/test/thirdparty$ ulimit -f 1024 yingc@yingc:~/gcyin/test/thirdparty$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) 1024 pending signals (-i) 15476 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 15476 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited yingc@yingc:~/gcyin/test/thirdparty$ ./test ret=0,cur=1048576,max=1048576 18 #include <stdlib.h> 19 #include <sys/resource.h> 20 21 int main() 22 { 23 ▸ int ret=-1; 24 ▸ struct rlimit limit={0}; 25 26 ▸ ret=getrlimit(RLIMIT_FSIZE,&limit); 27 28 ▸ printf("ret=%d,cur=%d,max=%d\n",ret,limit.rlim_cur,limit.rlim_max); 29 ▸ return ret; 30 } (gdb) p 1048576/1024 $90 = 1024 获取的大小不一致,应该跟block有关系,查看下一个block对应多少 在我的系统中一个block对应4k,跟这个数据没有对应上,暂时还不知到原因,但是可以确定的是肯定是1024的整数倍,你可以用其他的数字对应看下
静之深 2014-05-10
  • 打赏
  • 举报
回复
-H 设置硬资源限制. -S 设置软资源限制. -a 显示当前所有的资源限制. -c size:设置core文件的最大值.单位:blocks -d size:设置数据段的最大值.单位:kbytes -f size:设置创建文件的最大值.单位:blocks -l size:设置在内存中锁定进程的最大值.单位:kbytes -m size:设置可以使用的常驻内存的最大值.单位:kbytes -n size:设置内核可以同时打开的文件描述符的最大值.单位:n -p size:设置管道缓冲区的最大值.单位:kbytes -s size:设置堆栈的最大值.单位:kbytes -t size:设置CPU使用时间的最大上限.单位:seconds -v size:设置虚拟内存的最大值.单位:kbytes -u <程序数目>  用户最多可开启的程序数目
静之深 2014-05-10
  • 打赏
  • 举报
回复
看下这个: http://www.cnblogs.com/niocai/archive/2012/04/01/2428128.html
ybxuwei 2014-05-10
  • 打赏
  • 举报
回复
引用 2 楼 jingzhishen 的回复:
-H 设置硬资源限制. -S 设置软资源限制. -a 显示当前所有的资源限制. -c size:设置core文件的最大值.单位:blocks -d size:设置数据段的最大值.单位:kbytes -f size:设置创建文件的最大值.单位:blocks -l size:设置在内存中锁定进程的最大值.单位:kbytes -m size:设置可以使用的常驻内存的最大值.单位:kbytes -n size:设置内核可以同时打开的文件描述符的最大值.单位:n -p size:设置管道缓冲区的最大值.单位:kbytes -s size:设置堆栈的最大值.单位:kbytes -t size:设置CPU使用时间的最大上限.单位:seconds -v size:设置虚拟内存的最大值.单位:kbytes -u <程序数目>  用户最多可开启的程序数目
答非所问

23,224

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧