c - 直到程序结束,文件才写入磁盘

标签 c unix

我正在 unix 系统上使用 c 代码编写文件。我打开它,写几行然后关闭它。然后我调用一个 shell 脚本,在要使用该文件的地方说出代码 B,然后返回主程序。但是,当代码 B 尝试读取文件时,文件是空的。

我检查了文件系统上的文件,它的大小显示为 0,文件中没有数据。然而,在终止正在运行的 C 代码进程后,文件中存在数据。

这是一段代码-

void writefile(){
  FILE *fp;
  fp = fopen("ABC.txt","w");
  fputs("Some lines...\n",fp);
  fclose(fp);

  system("code_B ABC.txt");
}

请告知如何在不停止 c 代码进程的情况下读取 shell 脚本中的文件。

最佳答案

如果 fputs 和 fclose 之间有一些时间,添加

fflush(fp);

这将导致写入磁盘文件的内容。

关于c - 直到程序结束,文件才写入磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25737178/

相关文章:

c - 编译时的加载地址是将可执行文件复制到RAM中的地方吗?

c - 在 C 中处理字符串时出现问题(打印它们)

java - 执行 Runtime.getRuntime().exec AWK 时出现问题

java - 压缩后不保留文件权限

linux - bash 脚本中双引号的意外行为

c - printf 与 int C 组合时输出为 null

C - 使用递归打印链表

c - Linux内核模块编程Makefile错误

macos - Unix脚本,用于在Mac上删除文件的第一行

linux - 如何手动更改linux系统时间?