Flushing An Output Stream
     open/4 option:  flush(FlushType)
     QP_stream:      unsigned char flush_type

This field specifies whether or not the characters buffered in an output stream can be written out immediately as a partial record. It is not used for an input stream. Characters written to an output stream are buffered until the current record is terminated or the output buffer overflows. When an output record is terminated, it is passed to the bottom layer of the write function of the stream. The completed record is either written to the associated device of the stream or further buffered by the bottom layer write function. If the output buffer overflows, or flush_output/1 is called, buffered characters may be forced out through flushing the output stream. The possible values for flush_type are:

specified as flush(error) in open/4. It is an error to flush the output stream. Any call to flush_output/1 or QP_flush() is an error.
specified as flush(flush) in open/4. Write out any characters in the output buffer to the associated device of the stream. The host system must permit writing out of partial records to support this option. The bottom layer flush function must be supplied for the output stream.