The combination of
pmprintf
and
pmflush
produces output in either an
xconfirm(1)
window, on the standard error stream, or to a file in a manner similar to
fprintf(3).
The fmt argument is used to control the conversion, formatting, and
printing of the variable length args list.
The output technique is controlled via an environment variable.
pmprintf
appends the formatted message string to an internal buffer shared by the
two routines, without actually producing any output.
pmflush
causes the internal buffer to be either displayed in a window, printed
on standard error, or flushed to a file and the internal buffer to be cleared.
ENVIRONMENT
The environment variable
PCP_STDERR
controls the output technique used by pmflush:
If
PCP_STDERR
is unset, the text is written onto the
stderr
stream of the caller.
If
PCP_STDERR
is set to the literal reserved word
DISPLAY
then the text will be displayed as a GUI dialog using
xconfirm(1).
If
PCP_STDERR
is set to any other value then pmflush
interprets the value as a file name and
appends the text to that file. The file is created if it doesn't already
exist, and in this case if the file creation fails, then
stderr
is used instead).
FILES
pmprintf
uses the
tmpnam(3)
function to create a temporary file.
This temporary file is deleted when
pmflush
is called.
DIAGNOSTICS
On successful completion, pmprintf returns the number of characters
transmitted, while
pmflush
returns a value of zero on successful completion.
For either routine, a negative value is returned if an error was encountered,
and this can be passed to
pmErrStr(3)
to obtain the associated error message.