有时我们需要在文件尾端截去一些数据以缩短文件。将一个文件清空为0是一个特例,在打开文件时使用O_TRUNC标志可以做到这一点。
#include <unistd.h> int truncate( const char *pathname, off_t length ); int ftruncate( int filedes, off_t length ); 两个函数的返回值:若成功则返回0, 若出错则返回-1
这两个函数将把现有的文件长度截短为length字节。如果该文件以前的长度大于length,则超过length以外的数据就不再能访问。如果以前的长度短于length,则其效果与系统有关。遵循XSI的系统将增加该文件的长度。若UNIX系统实现扩展了该文件,则在以前的文件尾端和新的文件尾端之间的数据将读作0(也就是可能在文件中创建了一个空洞)。