egr*_*dlo 3 c c++ io
我正在使用fopen()函数打开一个文件来编写,并返回一个FILE指针.然后我使用此指针fprintf(),但数据不会持久保存我对文件的写入.这是直接IO/O_DIRECT相关,还是有什么问题?
fopen()
FILE
fprintf()
O_DIRECT
Wil*_*ill 5
您需要调用fflush(),或者只是fclose()在写完文件时调用文件.fclose()将在关闭前尝试冲洗.此行为是ISO C和POSIX的一部分,因此您可以依赖它.有关更多信息,请参见此处fclose():
fflush()
fclose()
刷新流,然后关闭与该流关联的文件.然后,该函数释放与流关联的所有缓冲区.刷新意味着将未写入的缓冲数据写入文件,并丢弃未读缓冲数据.
如果您继续写入文件并且从不刷新或关闭它,则在足够的写入排队后,操作系统将"准备好"时将数据刷新到文件中.
归档时间:
9 年,9 月 前
查看次数:
77 次
最近记录:
9 年,8 月 前