From: Konstantin Bukin <kbukin@gmail.com>
To: mtk.manpages@gmail.com
Cc: Konstantin Bukin <kbukin@gmail.com>, linux-man@vger.kernel.org
Subject: [PATCH] stat.2: fixed inode printing in example program
Date: Sun, 13 Sep 2020 12:12:01 -0700 [thread overview]
Message-ID: <20200913191201.1991-1-kbukin@gmail.com> (raw)
In-Reply-To: <139b02b1-901f-c7fc-71ec-3688c062e22b@gmail.com>
inode numbers are expected to be positive. Casting them to a signed type
may result in printing negative values. E.g. running example program on
the following file:
$ ls -li test.txt
9280843260537405888 -r--r--r-- 1 kbukin hardware 300 Jul 21 06:36 test.txt
resutls in the following output:
$ ./example test.txt
ID of containing device: [0,480]
File type: regular file
I-node number: -9165900813172145728
Mode: 100444 (octal)
Link count: 1
Ownership: UID=2743 GID=30
Preferred I/O block size: 32768 bytes
File size: 300 bytes
Blocks allocated: 8
Last status change: Tue Jul 21 06:36:50 2020
Last file access: Sat Sep 12 14:13:38 2020
Last file modification: Tue Jul 21 06:36:50 2020
Such erroneous reporting happens for inode values greater than maximum
value which can be stored in signed long. Casting does not seem to be
necessary here. Printing inode as unsigned long long fixes the issue.
---
man2/stat.2 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/man2/stat.2 b/man2/stat.2
index 7e5417480..82eaefcda 100644
--- a/man2/stat.2
+++ b/man2/stat.2
@@ -681,7 +681,7 @@ main(int argc, char *argv[])
default: printf("unknown?\en"); break;
}
- printf("I\-node number: %ld\en", (long) sb.st_ino);
+ printf("I\-node number: %llu\en", (unsigned long long) sb.st_ino);
printf("Mode: %lo (octal)\en",
(unsigned long) sb.st_mode);
--
2.17.0
next prev parent reply other threads:[~2020-09-13 19:12 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-13 15:04 [PATCH] stat.2: fixed inode printing in example program Konstantin Bukin
2020-09-13 15:16 ` Dmitry V. Levin
2020-09-13 17:24 ` Konstantin Bukin
2020-09-13 17:38 ` Dmitry V. Levin
2020-09-13 18:04 ` Alejandro Colomar
2020-09-13 18:16 ` Konstantin Bukin
2020-09-13 18:30 ` Alejandro Colomar
2020-09-13 18:42 ` Konstantin Bukin
2020-09-13 18:46 ` Alejandro Colomar
2020-09-13 19:12 ` Konstantin Bukin [this message]
2020-09-13 19:39 ` Konstantin Bukin
2020-09-13 19:40 ` Konstantin Bukin
2020-09-14 9:30 ` Michael Kerrisk (man-pages)
2020-09-13 18:04 ` Konstantin Bukin
-- strict thread matches above, loose matches on Subject: below --
2020-09-13 18:29 Konstantin Bukin
2020-09-13 18:43 ` Alejandro Colomar
2020-09-13 19:32 ` Konstantin Bukin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200913191201.1991-1-kbukin@gmail.com \
--to=kbukin@gmail.com \
--cc=linux-man@vger.kernel.org \
--cc=mtk.manpages@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox