uint64_t might be defined as either unsigned long or unsigned long long, depending on the architecture. Values of this type should be formatted with the specifier PRIu64 rather than "ld". Signed-off-by: Ben Hutchings <ben.hutchings@xxxxxxx> --- tools/gpiomon.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/gpiomon.c b/tools/gpiomon.c index 2b5966c..df86a46 100644 --- a/tools/gpiomon.c +++ b/tools/gpiomon.c @@ -4,6 +4,7 @@ #include <errno.h> #include <getopt.h> #include <gpiod.h> +#include <inttypes.h> #include <limits.h> #include <poll.h> #include <signal.h> @@ -95,10 +96,10 @@ static void event_print_custom(unsigned int offset, uint64_t timeout, fputc('0', stdout); break; case 's': - printf("%ld", timeout / 1000000000); + printf("%"PRIu64, timeout / 1000000000); break; case 'n': - printf("%ld", timeout % 1000000000); + printf("%"PRIu64, timeout % 1000000000); break; case '%': fputc('%', stdout); @@ -129,7 +130,7 @@ static void event_print_human_readable(unsigned int offset, else evname = "FALLING EDGE"; - printf("event: %s offset: %u timestamp: [%8ld.%09ld]\n", + printf("event: %s offset: %u timestamp: [%8"PRIu64".%09"PRIu64"]\n", evname, offset, timeout / 1000000000, timeout % 1000000000); } -- 2.20.1