getrlimit 的单位是什么?

What is the unit of getrlimit?

请大家帮忙理解getrlimit的单位是什么。我想它是字节,但它仍然是一个巨大的价值。

>>> import resource
>>> soft, hard = resource.getrlimit(resource.RLIMIT_AS)
>>> soft
9223372036854775807
>>> hard
9223372036854775807

rlim_t 通常是 unsigned integer 类型,而 max/unlimited 地址 space 在 64 位机器上将是 (2^64) - 1 但无论你怎么看您机器上的最大限制为 9223372036854775807。在 CentOS/Ubuntu 机器上,我看到 RLIM_INFINITY 设置为 -1,而在 MacOS 上,它设置 9223372036854775807 作为代表无限限制的常量。

resource.RLIM_INFINITY : 用于表示无限资源限制的常量。

在 CentOS 机器上:

[root ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root ~]# ulimit -a | grep virtual
virtual memory          (kbytes, -v) unlimited
[root ~]# python
Python 2.7.5 (default, Oct 30 2018, 23:45:53)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import resource
>>> resource.RLIM_INFINITY
-1
>>> soft, hard = resource.getrlimit(resource.RLIMIT_AS)
>>> soft
-1
>>> hard
-1
>>>