用open()写清前文件

时间:2015-11-11 01:24:20

标签: c file

使用fopen,将其设置为w会自动清除该文件。但是现在我试图用open

做同样的事情
int file = open(filename, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);

这不能保证文件为空并在开头写(?)。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

添加O_TRUNC - 最初清除文件中的所有数据。

答案 1 :(得分:1)

O_TRUNC flag truncates the file when opening. It can be used.  
int file = open(filename, O_WRONLY | O_CREAT  | O_TRUNC, S_IRUSR | S_IWUSR);