c中的ftruncate trunc文件找不到这个函数

我想截断文件像setsizeof()FILE *我正在开发VS 2003窗口

#include <unistd.h> there's no such lib 

我怎么能做到这一点freopen()截断所有数据vut不写 – 获取EINVAL错误一些帮助?????

_chsize函数可以更好的完成这个工作

C标准中有大量的(大约20个)头文件,unistd不是其中之一(这是POSIX / UNIX95 / UNIX98头)。 所以没有要求供应商提供它。 C89和C99都没有一个强制的头文件。

截断文件最简单的方法是以写入模式重新打开文件(假设您有文件名)。

 fclose (fh); fh = fopen ("file_name", "w"); 

如果你只有文件句柄,你需要使用freopen() 。 如果模式不正确,您将只能得到EINVAL 。 除了按照下表,你不能改变模式:

 r -> r wa -> aw r+ w+ a+ -> any mode 

查看man freopen获取更多详情。