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:
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)
+};