Reported-by: Florian Weimer <fweimer@xxxxxxxxxx> Reported-by: Paul Eggert <eggert@xxxxxxxxxxx> Signed-off-by: Alejandro Colomar <colomar.6.4.3@xxxxxxxxx> --- Hello Paul, On 9/18/20 10:24 PM, Paul Eggert wrote: > I suggest saying "values" instead of "variables", here and elsewhere, > since variables need not be involved. Yes. > This sort of thing should use ".B" not ".BR". There are multiple > instances of this. Oops. A few typos. > POSIX does provide that length modifier; however, it doesn't say it > works with ssize_t. I suggest rewording "Glibc provides a length > modifier" to "Glibc and most other implementations provide a length > modifier", and changing the last two sentences to: > > > Although > .B z > works > for > .I ssize_t > on Glibc and most other implementations, portable POSIX programs should > avoid it, e.g., by converting to > .I intmax_t > and using its length modifier. Much better wording. Check the new one, please. Thanks, Alex man7/system_data_types.7 | 56 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/man7/system_data_types.7 b/man7/system_data_types.7 index 080f0057f..5128e1f01 100644 --- a/man7/system_data_types.7 +++ b/man7/system_data_types.7 @@ -108,6 +108,22 @@ capable of storing values in the range .BR "" [ PTRDIFF_MIN , .BR PTRDIFF_MAX ]. .IP +The length modifier for +.I ptrdiff_t +for the +.BR printf (3) +and the +.BR scanf (3) +families of functions is +.BR t ; +resulting commonly in +.B %td +or +.B %ti +for printing +.I ptrdiff_t +values. +.IP Conforming to: C99 and later; POSIX.1-2001 and later. .IP See also the @@ -343,6 +359,22 @@ it shall be an unsigned integer type capable of storing values in the range [0, .BR SIZE_MAX ]. .IP +The length modifier for +.I size_t +for the +.BR printf (3) +and the +.BR scanf (3) +families of functions is +.BR z ; +resulting commonly in +.B %zu +or +.B %zx +for printing +.I size_t +values. +.IP Conforming to: C99 and later; POSIX.1-2001 and later. .IP Notes: @@ -403,6 +435,30 @@ According to POSIX, it shall be a signed integer type capable of storing values at least in the range [-1, .BR SSIZE_MAX ]. .IP +Glibc and most other implementations provide a length modifier for +.I ssize_t +for the +.BR printf (3) +and the +.BR scanf (3) +families of functions, which is +.BR z ; +resulting commonly in +.B %zd +or +.B %zi +for printing +.I ssize_t +values. +Although +.B z +works for +.I ssize_t +on most implementations, portable POSIX programs should avoid using it, +e.g., by converting the value to +.I intmax_t +and using its length modifier. +.IP Conforming to: POSIX.1-2001 and later. .IP See also: -- 2.28.0