ulimit & rlimit no Linux, eles são a mesma coisa?

14

Eu vejo pessoas usando os termos ulimi t & rlimit intercambiavelmente, posso dizer que eles estão se referindo à mesma coisa?

    
por Ryan 25.06.2013 / 17:42

3 respostas

12

Acho que a confusão vem do fato de que a chamada de sistema subjacente que ulimit envolve é chamada de setrlimit .

trecho da página man do ulimit

The ulimit() function shall control process limits. The process limits that can be controlled by this function include the maximum size of a single file that can be written (this is equivalent to using setrlimit() with RLIMIT_FSIZE).

Além disso, se você olhar a página setrlimit man, a estrutura de dados subjacente que contém as informações de limite é chamada rlimit .

trecho da página do manual setrlimit

getrlimit and setrlimit get and set resource limits respectively. Each resource has an associated soft and hard limit, as defined by the rlimit structure (the rlim argument to both getrlimit() and setrlimit()):

struct rlimit {
    rlim_t rlim_cur;   /* Soft limit */
    rlim_t rlim_max;   /* Hard limit (ceiling 
                          for rlim_cur) */
};

Referências

por 25.06.2013 / 18:12
1

ulimit (2) é obsoleto agora, pois atualiza apenas uma parte da estrutura rlimit (provavelmente tornando-a inútil). Existe um comando ulimit no bash shell, que está documentado na man page do bash.

As funções, getrlimit e setrlimit devem ser usadas quando os aplicativos linux são gravados à medida que eles superam a função ulimit.

    
por 22.03.2015 / 19:25
0

ulimit pode ser duas coisas:

  • uma interface da API POSIX 7 C que foi preterida em favor do link getrlimit() :

    Applications should use the getrlimit() or setrlimit() functions instead of the obsolescent ulimit() function.

    Este não foi o caso quando sim respondeu no POSIX 6.

    No GNU / Linux, getrlimit() e ulimit() são implementados com a chamada de sistema sys_getrlimit . Não há sys_ulimit .

  • um utilitário POSIX 7 CLI não depreciado: link

    Ele pode ser implementado com ulimit() ou getrlimit() .

por 23.08.2015 / 22:04