Estou correto em assumir que os ulimit -c 0
conjuntos de tamanho máximo dos arquivos principais criam um valor ilimitado (sem limites)?
Vi referência a, ulimit -c unlimited
mas help ulimit
não menciona 0 nem 'unlimited' no Bash, a distribuição Linux que testei (Rocky Linux 8.10, 9.5, Ubuntu) ou mesmo no Bash 5.2.37 rodando no macOS. No zsh 5.9 no macOS, run-help ulimit
menciona unlimited
e hard
mas não 0.
Não
0
não é o mesmo queunlimited
.Os comandos internos
ulimit
(à la sh) / (à la csh) são interfaces para a chamada do sistema.limit
zsh
setrlimit()
man 2 setrlimit
em um sistema Debian (onde as páginas de manual de chamada do sistema são de https://www.kernel.org/doc/man-pages/ como na maioria dos sistemas operacionais baseados em Linux; veja lá a versão mais recentesetrlimit()
) fornece:A página de manual do macOS não menciona esse caso especial, sugerindo que ele pode criar arquivos principais de tamanho 0 quando o limite é definido como 0, embora isso pareça improvável, especialmente considerando que o POSIX especifica (aqui na edição de 2024):
E o macOS foi certificado como compatível com POSIX.
Na implementação original do limite de recursos no 4BSD em 1980, o arquivo principal não era criado se seu tamanho fosse maior que o limite , e parece que esse ainda é o caso até hoje, pelo menos no FreeBSD , e o texto
RLIMIT_CORE
em sua página de manual é idêntico ao do macOS, então pode ser que o macOS se comporte da mesma forma, o que parece torná-lo não compatível com POSIX (embora a nota de que a produção de tal arquivo pode ser uma das ações definidas pela implementação para encerramento anormal provavelmente dê bastante margem de manobra).Em qualquer caso
0
não significaria ilimitado . Poissetrlimit()
, ilimitado é especificado com aRLIM_INFINITY
constante.