Output Stream Buffer Overflow
     open/4 option:  overflow(OverFlowAction)
     QP_stream:      unsigned char overflow
     

Written characters are stored in the buffer of an output stream by the middle layer output function until the current record is terminated, through a newline operation (such as nl/[0,1] or QP_newln()) or by writing the line border code of the stream. If a character is written when the buffer of an output stream is full, it overflows the output buffer. The overflow field specifies the action that the middle layer function should take if this happens. The possible values for overflow are:


QP_OV_ERROR
specified as overflow(error) in open/4. It is an error when output stream buffer overflows.
QP_OV_TRUNCATE
specified as overflow(truncate) in open/4. Keeps the characters in the buffer and throws away the current character that overflows the output buffer.
QP_OV_FLUSH
specified as overflow(flush) in open/4. Pass the current buffer storing a partial record of the output stream to the bottom layer flush function to write out the buffer. The host operating system must support writing of partial records for the device associated with the stream.

Note that if an output stream is unbuffered (i.e. max_reclen is 0) then the middle layer function ignores the overflow field and calls the write function for each character written to the stream.