我在Unix上编码。 我有一个文本文件作为输出。 每次调用函数时如何覆盖内容?
示例:
functionA(){
fp = fopen("text.txt",someflag);
...
...blabla
....
fprintf(fp,"some new text");
}
因此,通过调用functionA
,我应该使用带有新内容的text.txt。
对于someflag
,我已经尝试了a
,ab
和w+
,但没有我想要的结果。 (ab
附加新文字,w+
打开文件,但fprintf
不起作用)。
我在unix上使用C.
答案 0 :(得分:4)
标记"w"
应覆盖现有文件。
详情请见this documentation:
mode参数指向一个字符串。如果字符串是其中之一 以下,文件应以指示的模式打开。除此以外, 行为未定义。
- r或rb:打开文件进行阅读。
- w或wb:截断为零长度或创建文件进行书写。
- a或ab:追加;打开或创建文件以便在文件结尾处写入。
- r +或rb +或r + b:打开文件进行更新(读写)。
- w +或wb +或w + b:截断为零长度或创建文件以进行更新。
- a +或ab +或a + b:追加;打开或创建文件以进行更新,在文件末尾写入。