什么是文件指针的模式?

时间:2016-01-03 16:51:52

标签: c file-pointer

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

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

如果我想insert some character存在文件但又不丢失此文件中的任何字符,我该怎么办。

2 个答案:

答案 0 :(得分:3)

我知道没有支持插入模式的文件系统。

写入文件流的C语义是:

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

请注意"w""a"也会创建文件,因为它不存在。

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

答案 1 :(得分:1)

取决于你如何打开它:

追加:

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

写(覆盖):

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