Answers:
我认为混淆来自这样一个事实,即ulimit包装的基础系统调用称为 setrlimit。
摘录自 ulimit手册页
ulimit()函数应控制过程限制。可以通过此函数控制的进程限制包括可以写入的单个文件的最大大小(这等效于将setrlimit()与RLIMIT_FSIZE一起使用)。
另外,如果您查看setrlimit
手册页,则包含限制信息的基础数据结构将被称为rlimit
。
getrlimit和setrlimit分别获取和设置资源限制。每个资源都有一个关联的软限制和硬限制,如rlimit结构(getrlimit()和setrlimit()的rlim参数)所定义:
struct rlimit { rlim_t rlim_cur; /* Soft limit */ rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */ };
ulimit
可以是两件事:
一个不推荐使用的POSIX 7 C API接口getrlimit()
:http : //pubs.opengroup.org/onlinepubs/9699919799/functions/ulimit.html
应用程序应使用getrlimit()或setrlimit()函数,而不要使用过时的ulimit()函数。
sim
在POSIX 6上回答时不是这种情况。
在GNU / Linux上,getrlimit()
并ulimit()
通过sys_getrlimit
系统调用实现。没有sys_ulimit
。
一个不推荐使用的POSIX 7 CLI实用程序: http //pubs.opengroup.org/onlinepubs/9699919799/utilities/ulimit.html
可以使用ulimit()
或来实现getrlimit()
。