The controlled sequences can impose limitations on how the program can
read characters from a sequence,
write characters to a sequence,
put characters back into an input sequence, or
alter the stream position.
Each sequence is characterized by three pointers which, if non-null,
all point into the same
charT
array object.
The array object represents, at any moment,
a (sub)sequence of characters from the sequence.
Operations performed on a sequence alter the values stored in these pointers,
perform reads and writes directly to or from associated sequences, and
alter “the stream position” and conversion state as needed to
maintain this subsequence relationship.
If xnext is not a null pointer, then
xbeg and xend shall also be non-null pointers
into the same
charT
array, as described above; otherwise, xbeg and
xend shall also be null.