Create a Channel
A Channel implements low-level input/output for the AST library. Writing an Object to a Channel (using astWrite) will generate a textual representation of that Object, and reading from a Channel (using astRead) will create a new Object from its textual representation.
Normally, when you use a Channel, you should provide "
source"
and "
sink"
functions which connect it to an external data store by reading and writing the
resulting text. By default, however, a Channel will read from standard input
and write to standard output. Alternatively, a Channel can be told to read or
write from specific text files using the SinkFile and SourceFile attributes, in
which case no sink or source function need be supplied.
If "
source"
is NULL and no value has been set for the SourceFile attribute, the
Channel will read from standard input instead.
If "
sink"
is NULL, and no value has been set for the SinkFile attribute, the Channel
will write to standard output instead.
"
printf"
format specifiers identified by "
%"
symbols in the
normal way. "
options"
string contains "
%"
format specifiers,
then an optional list of additional arguments may follow it in order to supply
values to be substituted for these specifiers. The rules for supplying these are
identical to those for the astSet function (and for the C "
printf"
function). Application code can pass arbitrary data (such as file descriptors, etc) to source and sink functions using the astPutChannelData function. The source or sink function should use the astChannelData macro to retrieve this data.
A null Object pointer (AST__NULL) will be returned if this function is invoked with the AST error status set, or if it should fail for any reason.