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`