Skip to content

FILEFLUSH


将应用程序流缓冲区刷新到系统,或将系统缓冲区刷新到文件

语法

declare function FileFlush ( byval filenum as long = -1, byval systembuffers as long = 0 ) as long

用法

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

参数

filenum

绑定文件或设备的文件号。若未提供或为 -1,则刷新所有已打开的文件。

systembuffers

若为非零值,则将系统缓冲区刷新到物理设备。默认为零(0)。

返回值

成功时返回零(0),若文件缓冲区无法刷新则返回错误码。

说明

FileFlush 将应用程序缓冲的输出写入底层流;若 systembuffers 为非零值,则同时写入底层物理设备。

FileFlush(filenum) 形式将特定文件的应用程序输出缓冲区写入系统。FileFlush 形式将所有应用程序缓冲区写入系统。通常,打开文件时,binaryrandom 文件使用块缓冲,appendoutput 文件使用行缓冲。FileFlush 函数会覆盖应用程序的正常缓冲行为,立即将缓冲输出写入系统。系统本身也可能有自己的缓冲区。

FileFlush(filenum,1) 形式将既刷新应用程序缓冲区,又将底层系统缓冲区刷新到物理设备。FileFlush(,1) 形式将刷新所有应用程序缓冲区,并将所有底层系统缓冲区刷新到物理设备。

示例

vb
#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

输出(Windows):

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

版本

  • 自 fbc 1.08.0 起

与 QB 的差异

  • FreeBASIC 新增。

另请参阅

  • Close

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系