FILEFLUSH
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgFileflush
- 最后更新: 2021-10-11
将应用程序流缓冲区刷新到系统,或将系统缓冲区刷新到文件
语法
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 形式将所有应用程序缓冲区写入系统。通常,打开文件时,binary 和 random 文件使用块缓冲,append 和 output 文件使用行缓冲。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
返回 目录