如何覆盖文本文件?

时间:2017-03-26 13:24:52

标签: c unix printf fopen

我在Unix上编码。 我有一个文本文件作为输出。 每次调用函数时如何覆盖内容?

示例:

functionA(){
    fp = fopen("text.txt",someflag);
    ...
    ...blabla
    ....
    fprintf(fp,"some new text");
}

因此,通过调用functionA,我应该使用带有新内容的text.txt。

对于someflag,我已经尝试了aabw+,但没有我想要的结果。 (ab附加新文字,w+打开文件,但fprintf不起作用)。 我在unix上使用C.

1 个答案:

答案 0 :(得分:4)

标记"w"应覆盖现有文件。

详情请见this documentation

  

mode参数指向一个字符串。如果字符串是其中之一   以下,文件应以指示的模式打开。除此以外,   行为未定义。

     
      
  • r或rb:打开文件进行阅读。
  •   
  • w或wb:截断为零长度或创建文件进行书写。
  •   
  • a或ab:追加;打开或创建文件以便在文件结尾处写入。
  •   
  • r +或rb +或r + b:打开文件进行更新(读写)。
  •   
  • w +或wb +或w + b:截断为零长度或创建文件以进行更新。
  •   
  • a +或ab +或a + b:追加;打开或创建文件以进行更新,在文件末尾写入。
  •