The output files are normally buffered only if they are not directed to a terminal, except for stderr, which is not buffered by default. The fflush function flushes the C RTL buffers. However, RMS has its own buffers. The fflush function does not guarantee that the file will be written to disk. (See the description of fsync for a way to flush buffers to disk.) If the file pointed to by file_ptr was opened in record mode and if there is unwritten data in the buffer, then fflush always generates a record.