VMS Help
System Services, $FAO
*Conan The Librarian
|
Converts a binary value into an ASCII character string in
decimal, hexadecimal, or octal notation; returns the character
string in an output string; and inserts variable character-string
data into an output string.
The Formatted ASCII Output with List Parameter ($FAOL) service
provides an alternate method for specifying input parameters when
calling the $FAO system service.
On Alpha and Integrity server systems, this service accepts 64-
bit addresses.
Format
SYS$FAO ctrstr ,[outlen] ,outbuf ,[p1]...[pn]
SYS$FAOL ctrstr ,[outlen] ,outbuf ,[prmlst]
C Prototype
int sys$fao (void *ctrstr, unsigned short int *outlen, void
*outbuf,...);
int sys$faol (void *ctrstr, unsigned short int *outlen, void
*outbuf, void *prmlst);
ctrstr
OpenVMS usage:char_string
type: character-coded text string
access: read only
mechanism: by 32- or 64-bit descriptor-fixed-length string
descriptor
Control string passed to $FAO that contains the text to be output
together with one or more $FAO directives. $FAO directives are
used to specify repeat counts or the output field length, or
both, and they are preceded by an exclamation point (!). The
ctrstr argument is the 32- or 64-bit address of a character
string descriptor pointing to the control string.
There is no restriction on the length of the control string or
on the number of $FAO directives it can contain; however, if an
exclamation point must appear in the output string, it must be
represented in the control string by a double exclamation point
(!!). A single exclamation point in the control string indicates
to $FAO that the next characters are to be interpreted as FAO
directives.
When $FAO processes the control string, it writes to the output
buffer each character that is not part of an $FAO directive.
If the $FAO directive is valid, $FAO processes it. If the
directive requires a parameter, $FAO processes the next
consecutive parameter in the specified parameter list. If the
$FAO directive is not valid, $FAO terminates and returns a
condition value in R0.
The $FAO service reads parameters from the argument list
specified in the call; these arguments have the names p1, p2,
p3, and so on, up to p17. Each argument specifies one parameter.
Because $FAO accepts a maximum of 17 parameters in a single call,
you must use $FAOL if the number of parameters exceeds 17. The
$FAOL service accepts any number of parameters used with the
prmlst argument.
outlen
OpenVMS usage:word_unsigned
type: word (unsigned)
access: write only
mechanism: by 32- or 64-bit reference
Length in bytes of the fully formatted output string returned by
$FAO. The outlen argument is the 32- or 64-bit address of a word
containing this value.
outbuf
OpenVMS usage:char_string
type: character-coded text string
access: write only
mechanism: by 32- or 64-bit descriptor-fixed-length string
descriptor
Output buffer into which $FAO writes the fully formatted output
string. The outbuf argument is the 32- or 64-bit address of a
character string descriptor pointing to the output buffer. The
maximum number of bytes written is limited to 64K.
p1 to pn
OpenVMS usage:varying_arg
type: quadword (signed)
access: read only
mechanism: by value
$FAO directive parameters. The p1 argument is a quadword
containing the parameter needed by the first $FAO directive
encountered in the control string, the p2 argument is a quadword
containing the parameter needed for the second $FAO directive,
and so on for the remaining arguments up to p17. If an $FAO
directive does not require a parameter, that $FAO directive is
processed without reading a parameter from the argument list.
Depending on the directive, a parameter can be a value to be
converted, a 32- or 64-bit address of a string to be inserted
into the output string, or a length or argument count. Each
directive in the control string might require a corresponding
parameter or parameters.
prmlst
OpenVMS usage:vector_longword_unsigned
type: longword (unsigned)
access: read only
mechanism: by 32- or 64-bit reference
List of $FAO directive parameters to be passed to $FAOL. The
prmlst argument is the 32- or 64-bit address of a list of
longwords wherein each longword is a parameter. The $FAOL service
processes these parameters sequentially as it encounters, in the
control string, $FAO directives that require parameters.
The parameter list can be a data structure that already exists in
a program and from which certain values are to be extracted.