今天写个小程序需要将文件全部清空,原先想的办法是用可写的方式读取文件后再全部写入空字符串""。但是需要打开文件再关闭再打开,比较麻烦,搜索后发现可以使用ftruncate可以清空文件,如:

ftruncate(fileno(fp), 0);

#include <unistd.h>

原型:int ftruncate(int fildes, off_t length);
注意:

1.清空文件后,需要使用rewind或fseek将文件指针移到文件头。

2.ftruncate第一个参数是文件描述符int,而不是文件指针FILE *