Functions.FFlush 方法 (IntPtr, Boolean) | |
将使用低级文件函数打开的文件刷新到磁盘。
命名空间:
XSharp.Core
程序集:
XSharp.Core (在 XSharp.Core.dll 中) 版本:2.22 GA
语法 FUNCTION FFlush(
ptrHandle AS IntPtr,
lCommit AS LOGIC
) AS LOGIC
public static bool FFlush(
IntPtr ptrHandle,
bool lCommit
)
查看代码参数
- ptrHandle
- 类型:IntPtr
要刷新的打开文件的句柄。 - lCommit
- 类型:Boolean
当此参数传入 TRUE 时,所有中间缓冲区也会被刷新。
返回值
类型:
Boolean备注
FFlush() 将缓冲区写入磁盘,从而释放这些缓冲区使用的内存。
如果在多用户或多任务环境中共享文件,FFlush() 允许每个用户看到文件的最新内容。
通过从内存中刷新数据,FFlush() 还可以防止系统崩溃可能导致的数据丢失。
使用 2 个参数调用该方法,且第二个参数值为 TRUE 时,将显著降低应用程序的速度!
使用 1 个参数调用的效果与调用 FFlush() 并为第二个参数传入 FALSE 值相同。
备注 提示: |
---|
X# 运行时中的低级文件 IO 函数在后台使用 .Net 文件流。
这意味着 FOpen() 和 FCreate() 返回的文件句柄不是'正常'的文件句柄,而是用于在运行时的流集合中找到底层流对象的唯一标识符。
这也意味着你不能使用 FRead() 和 FWrite() 这样的函数,这些函数不是在 X# 运行时中创建的文件句柄。
如果你想访问底层的 FileStream,你应该调用函数 FGetStream(IntPtr) |
示例
此示例使用 FFlush() 在等待按键后自动刷新数据:
1ptrHandle := FOpen2("docs.txt", ;
2 FO_READWRITE + FO_SHARED)
3IF ptrHandle != F_ERROR
4 FWrite(ptrHandle, Space(100))
5 nKey := Inkey(50)
6 FFlush(ptrHandle)
7ENDIF
参见