什么是文件指针模式?

What is mode of file pointer?

什么模式指针是什么模式,'insert'还是overwrite

因为我是 file pointer C 的新手,所以我的问题可能很愚蠢。如果有人有这种感觉,我很抱歉。

如果我想 insert some character 进入现有文件但不丢失此文件中的任何字符,我可以做什么。

取决于你如何打开它:

追加:

fopen("myfile.txt", "a");

写入(覆盖):

fopen("myfile.txt", "w");

据我所知,没有任何文件系统支持 insert 模式。

写入文件流的 C 语义是:

  • "w" 的截断。成功后当前文件内容丢失 fopen().
  • 正在覆盖 "r+" 的文件内容。只有明确写入文件的字节会覆盖现有内容,其余内容不变。超出文件末尾的写入将扩展其大小,就像追加模式一样。
  • 正在为 "a" 追加文件。每个写操作都发生在文件末尾。

请注意,如果文件不存在,"w""a" 也会创建该文件。

为了在现有文件的中间插入内容,您必须将内容复制到新文件,将新内容写入适当的位置。您可以在关闭两个文件并删除旧文件后将新文件重命名为旧文件。