- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们的库中有一个记录器,可以将文本行写入磁盘以供以后诊断。我们将它用于多种目的,包括分析由应用程序或我们的库引起的硬机器挂起。
我们会向日志文件写入一行,然后调用 fclose(),然后在需要写入另一行时重新打开它以进行追加。这比写入一行后调用 fflush() 慢 35 倍。
所以我的问题是,使用 fclose() 方法比使用 fflush() 方法更有可能将最后一行成功存储在文件中吗?如果是这样,为什么?如果不是,如果不更安全地将数据写入磁盘,那 35 倍的时间忙于做什么?
顺便说一句,我们最关心 Windows。
最佳答案
来自http://en.cppreference.com/w/c/io/fflush :
For output streams (and for update streams on which the last operation was output), writes any unwritten data from the stream's buffer to the associated output device.
我想说 fflush
应该可以满足您的需求。
关于c++ - 如果机器随后立即崩溃,fflush() 与 fclose() 一样能将数据保存到磁盘吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32774948/
在我的程序中,我可能会关闭一个已经关闭的文件。当我对一个已经关闭的文件执行 fclose 时会发生什么? 如果不能这样做,如何知道文件是关闭还是打开? 最佳答案 使用同一流调用 fclose 两次是未
为什么如果我们使用 fread() 读取文件并且不包含 fclose 来关闭相同的相同文件引用但它仍然有效。 但是,如果我们忘记在 fwrite 之后包含 fclose,那么它就不起作用。即没有写入文
我在 Linux 中运行程序时遇到段错误错误。在 AIX 中工作正常。 我在 gdb 中收到消息段错误... 程序接收信号SIGSEGV,段错误fclose@@GLIBC_2.2.5 () 来自/li
是否需要检查fclose的返回值?如果我们成功打开了一个文件,它关闭失败的可能性有多大? 最佳答案 当您fwrite到文件时,它实际上可能不会写入任何内容,它可能会保留在缓冲区中(FILE对象内部)。
假设我正在写入文件,但我想通过关闭机器电源来结束写入,这会是 fclose() 函数没有被调用的问题吗? FILE *f = fopen("file.txt", "w"); if (f == NULL
我正在尝试读取一个整数文件,其中包含文件中的整数个数作为第一个整数,但是当我在读取文件后尝试关闭该文件时,出现了段错误。 我读到,如果文件指针为空并且您尝试关闭它,则会出现段错误。但是,我在关闭它之前
我有以下 C++ 代码来将 shorts 写入 headless 音频文件: vectornShrtDecoded; nShrtDecoded.resize(iCountDecodedShorts);
我的程序有问题。使用函数 fclose() 后出现错误: "* Error in `./server': corrupted double-linked list: 0x000000000251a23
我在这段代码中遇到问题,它成功执行直到到达 fclose(fp) 语句,它崩溃了。 void read_file(const char *filename) { FILE *fp; i
为什么这个简单的函数会导致seg fault? int main(int argc, char** argv) { FILE* file1; file1 = fopen(argv[ar
每当我在最后使用 fclose(outputFile); 运行我的程序时,我都会收到错误消息。 glibc 检测到...损坏的双链表 不过,令人困惑的是,我在它的正上方有 fclose(inputFi
我最近构建了一个包装库 gorilla-audio 的 Ruby C 扩展。该库足够简单,代码干净,占用内存等。但是,当我尝试将库加载到 ruby 中时,它会抛出一个错误,内容如下: The pr
我正在编写一个函数 (*rwObjects()),它将读取格式化文件并保存它的字符串,一次一个对象。不幸的是,它对我的研究有限制 - stdio.h、stdlib.h 和 string.h 几乎是
我已经通过评论缩减了程序,缩减为: #include #include int main(int argc, char *argv[]) { FILE * in; in = fop
这个问题在这里已经有了答案: What happens if I don't call fclose() in a C program? (4 个答案) 关闭 7 年前。 根据我的阅读,fclose
我有两个函数。第一个函数是以写入模式打开一个文件并写入一些内容,然后关闭它。 FILE *fp = fopen("file.txt", "w"); //writing itnot file using
我尝试在 Linux 机器上使用 c++ fopen、fwrite、fflush 和 fclose 函数创建大约 4 GB 的文件,但我观察到 fclose() 函数需要很长时间才能关闭文件,大约需要
下面是 fclose 导致错误的源代码的一小部分?此函数并不总是被调用,在某些特定情况下会调用此函数。 int write_into_file (char * file_name) {
我一直在尝试在 C 中进行简单的文件处理,我想确保可以尝试使用此文件访问该文件 #include main() { CheckFile(); } int CheckFile() { i
是否需要检查fclose的返回值?如果我们成功打开了一个文件,它关闭失败的可能性有多大? 最佳答案 当您fwrite 到一个文件时,它实际上可能不会写任何东西,它可能会留在缓冲区中(在 FILE 对象
我是一名优秀的程序员,十分优秀!