我正在 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/