|Did you know ...||Search Documentation:|
%escape sequences. The
%character is followed by numeric arguments and modifier characters. The generic format of this is described by the regular expression
[+-0 #]*(\d*|\*)(.(\d*|\*))?. Here,
implies right alignment,
00-padding and, a space white-space padding and
modified output. The two optional numerical arguments are separated by a full stop and may be
to get them from the argument list. The first numerical argument specifies the field width and the second the precision for floating point numbers.
This sequence is followed by optional type information. For integers
this is one of
size_t). For strings this is one of
(ISO Latin 1),
U (UTF-8) or
Finally we come to the format specifier. This is one of
long long) or
size_t) denote the size.
Unlike the POSIX fprintf(), this function, and the related functions
etc.) returns the number of characters written. Due to multibyte
encodings the number of bytes written can be more. On error, it returns
a negative value; in some cases there is extra information (e.g., in
but it cannot be relied on.
Each call to Sfprintf()
is atomic in the sense that another thread that calls Sfprintf()
on the same stream will block. If you wish to do a series of print
statements without any other thread interleaving, you should call PL_acquire_stream()
and use its returned
IOSTREAM* value, then call
at the end of the print statements.