我想截断文件像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获取更多详情。