FileFlush

Flush application stream buffers to system, or system buffers to file

Syntax
   Declare Function FileFlush ( ByVal filenum As Long = -1, ByVal 
   systembuffers As Long = 0 ) As Long

Usage
   #include "file.bi"
   result = FileFlush()
   result = FileFlush( filenum )
   result = FileFlush( filenum, systembuffers )

Parameters
   filenum
      File number of bound file or device.  If not given, or -1, then flush 
      all open files.
   systembuffers
      If non-zero, flush system buffers to physical device.  Default is 
      zero (0).

Return Value
   Returns zero (0) for success or an error code if file buffers could not 
   be flushed.

Description
   FileFlush writes application buffered output to the underlying stream, 
   and if systembuffers is non-zero, to the underlying physical device as 
   well.

   In the form FileFlush(filenum), the application output buffer for a 
   specific file are written.  And in the form FileFlush, all application 
   buffers are written to the system.  Typically, when a file is opened, 
   the stream will be block buffered for binary and random files, and line 
   buffered for append and output files.  The FileFlush function overrides 
   the normal buffering of the application and immediately writes buffered 
   output to the system.  The system may have it's own buffers as well.

   In the form FileFlush(filenum,1), both the application buffer is flushed 
   and the underlying system buffer is flushed to physical device.  In the 
   form FileFlush(,1), all application buffers are flushed and all 
   underlying system buffers are flushed to physical device.

Example
   #include "file.bi"

   Dim As Long f1, f2
   Dim As String s

   Print "File length", "File string"

   f1 = FreeFile
   Open "fileflushtest.txt" For Output As #f1
   Print #f1, "successful file flush"

   f2 = FreeFile
   Open "fileflushtest.txt" For Input As #f2
   Line Input #f2, s
   Print FileLen("fileflushtest.txt"), "'" & s & "'"  '' the string is not yet physically written to the file

   FileFlush(f1)
   Line Input #f2, s
   Print FileLen("fileflushtest.txt"), "'" & s & "'"  '' the string is now physically written to the file

   Close #f2
   Close #f1

   Sleep
      
Output (Windows):

   File length   File String
    0            ''
    23           'successful file flush'
   		

Version
   * Since fbc 1.08.0

Differences from QB
   * New to FreeBASIC.

See also
   * Close

