logo

utils-std

Collection of commonly available Unix tools git clone https://anongit.hacktivis.me/git/utils-std.git/
commit: bcfb37963fbf1abe03220e8a32bcd5fbb27e06ab
parent 74d8771f7067513fe240fc5a38d6c8905753383e
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Sun,  4 Jan 2026 12:25:01 +0100

getconf: use ULL for ULLONG_MAX

Diffstat:

Mcmd/getconf.c17+++++++++++++++++
Mlib/getconf_vars.m413+++++++++++--
2 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/cmd/getconf.c b/cmd/getconf.c @@ -126,6 +126,16 @@ print_system_var(const char *var) return 0; } + for(size_t i = 0; i < (sizeof(ulimits_vars) / sizeof(*ulimits_vars)); i++) + { + if(strcmp(ulimits_vars[i].name, var) != 0) continue; + + unsigned long long ret = ulimits_vars[i].limit_h; + + printf("%llu\n", ret); + return 0; + } + fprintf(stderr, "getconf: error: unknown system_var \"%s\"\n", var); return 1; } @@ -294,6 +304,13 @@ main(int argc, char *argv[]) printf("%s: %" PRIdLEAST64 "\n", limits_vars[i].name, ret); } + for(size_t i = 0; i < (sizeof(ulimits_vars) / sizeof(*ulimits_vars)); i++) + { + unsigned long long ret = ulimits_vars[i].limit_h; + + printf("%s: %llu\n", ulimits_vars[i].name, ret); + } + const char *path = argc == 1 ? argv[0] : "."; for(size_t i = 0; i < (sizeof(pathconf_vars) / sizeof(*pathconf_vars)); i++) { diff --git a/lib/getconf_vars.m4 b/lib/getconf_vars.m4 @@ -35,6 +35,12 @@ struct limits const int_least64_t limit_h; }; +struct ulimits +{ + const char *name; + const unsigned long long limit_h; +}; + dnl _CS_V${n}_ENV exposes environment variables to achieve said SUSv${n} version dnl It's therefore dependent on what the underlying system supports. define(`confstr_var', `#ifdef _CS_$1 @@ -351,8 +357,6 @@ limits_var(SHRT_MIN) limits_var(SSIZE_MAX) limits_var(UCHAR_MAX) limits_var(UINT_MAX) -limits_var(ULLONG_MAX) -limits_var(ULONG_MAX) limits_var(USHRT_MAX) limits_var(WORD_BIT) limits_var(GETENTROPY_MAX) @@ -373,3 +377,8 @@ limits_var_alias(POSIX2_EXPR_NEST_MAX, _POSIX2_EXPR_NEST_MAX) limits_var_alias(POSIX2_LINE_MAX, _POSIX2_LINE_MAX) limits_var_alias(POSIX2_RE_DUP_MAX, _POSIX2_RE_DUP_MAX) }; + +static const struct ulimits ulimits_vars[] = { +limits_var(ULLONG_MAX) +limits_var(ULONG_MAX) +};