errno_t _chsize_s(
int fd,
__int64 size
);

详见msdn知识库

_chsize将文件裁剪为指定大小,大小的度量方法与

long ftell(FILE * fp)

度量方法相同

第一个参数是文件信息句柄

open() close() 对应的是低级io,内存中没有缓存,直接对硬盘字符进行操作

fopen() fclose()对应的是高级io,内存中有缓存,在文件关闭(自动关闭前)不会写入硬盘

对于文件信息句柄,高级io通过

FILE * fopen(const char *file_name,const char *mode)

封装为指针(类指针)FILE,而低级io将文件句柄定义为int 型参数(磁盘扇区位号对应的唯一内存号)

_chsize()属于低级io ,需要使用

int _fileno(
FILE *stream
);

将FILE指针转换为低级io标识符,然后传给_chsize()函数进行操作

注意:

_chsize()在feof(fp)==1的情况下不能使用(也就是文件大小和pos值相同时)

所以,文件指针走到feof()==1的时候可以直接写入,不需要裁剪。

C++裁剪文件,截断文件,_chsize()的更多相关文章

  1. 截断文件函数truncate和ftruncate

    两个函数目的都是将文件大小设置为length参数指定的值 int truncate(const char *pathname,off_t length)//pathname就是路径 int ftrun ...

  2. URL 路径长度限制(错误:指定的文件或文件夹名称太长)

    本节讨论 URL 的构成.SharePoint 2010 构建 URL 的方式.URL 的编码和加长以及作为其他 URL 中的参数传递的方式. SharePoint URL 的构成 SharePoin ...

  3. Python_文件与文件夹操作

    ''' os模块除了提供使用操作系统功能和访问文件系统的简便方法之外,还提供了大量文件与文件夹操作的方法. os.path模块提供了大量用于路径判断.切分.连接以及文件夹遍历的方法. shutil模块 ...

  4. Python学习笔记【第七篇】:文件及文件夹操作

     介绍 我们用pytthon.C#.Java等这些编程语言,想要把文件(文字.视频....)永久保存下来就必须将文件写入到硬盘中,这就需要我们应用程序去操作硬件,我们这些编程语言是无法直接操作硬件的. ...

  5. 文件操作mode学习总结-----Python学习总结【第四篇】:Python之文件操作(文件、正则、json、pickle)

    非常全的博客,防丢链接参考https://www.cnblogs.com/madsnotes/articles/5521551.html 1.文件操作 1.1 操作流程 1)文件打开 2)文件操作 3 ...

  6. python 文件操作: 文件操作的函数, 模式及常用操作.

    1.文件操作的函数: open("文件名(路径)", mode = '模式', encoding = "字符集") 2.模式: r , w , a , r+ , ...

  7. 7.打开文件、文件读写操作、with方式、文件常用函数

    打开文件: 在python3中,打开文件的函数是: open(file, mode='r', buffering=None, encoding=None, errors=None, newline=N ...

  8. UNIX环境高级编程之第4章:文件和文件夹-习题

    4.1 stat函数是尾随符号链接的,所以用stat替换lstat不会显示符号链接的信息 4.2 在一个目录下先再shell中输入umask shell进程再进行创建文件的操作.其权限抖都会被屏蔽 4 ...

  9. 文件/大文件上传功能实现(JS+PHP)全过程

    文件/大文件上传功能实现(JS+PHP) 参考博文:掘金-橙红年代 前端大文件上传 路漫漫 其修远 PHP + JS 实现大文件分割上传 本文是学习文件上传后的学习总结文章,从无到有实现文件上传功能, ...

  10. SQL Server中的高可用性(2)----文件与文件组

        在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...

随机推荐

  1. python中django的第一课

    今天找遍了,PYTHON项目中的文件,也没发现后台管理的这些页面去哪里修改 原来在pycharm中的外部库中,查找django,最终找到 $python\django\django\contrib\a ...

  2. 汇编调用C程序

    本程序用keil5实现. keil4会将C程序的地址设为0x00000000,即一开始就运行C程序了,参数都还没设置好.这个错误我也没深究,因为我自己装的是keil5. 首先需要在汇编代码中给C程序指 ...

  3. TortoiseSVN/Git覆盖图标失效的解决方案

    之前在电脑上安装了TortoiseGit和TortoiseSVN这两种版本控制,使用一段时间之后发现,这两种版本控制的覆盖图标都无法显示,起初以为是git和svn使用的图标的不一样,有冲突,导致这两种 ...

  4. leetcode515

    /** * Definition for a binary tree node. * public class TreeNode { * public int val; * public TreeNo ...

  5. Spring+Log4j的集成总结

    导入依赖的jar包 <log4j.version>1.2.16</log4j.version> <!-- 自动引入slf4j-api.jar,log4j.jar,以及sl ...

  6. c++可变参数(示例)

    #include "stdafx.h" #include <stdarg.h> // 必须包含的头文件 #define ADD(int_params,...) Add( ...

  7. Linux实战教学笔记36:PHP服务缓存加速深度优化实践

    一,PHP缓存加速器介绍与环境准备 1.1 PHP缓存加速器介绍 1.1.1 操作码介绍及缓存原理 当客户端请求一个PHP程序时,服务器的PHP引擎会解析该PHP程序,并将其编译为特定的操作码(Ope ...

  8. Plugins in Unity

    [Plugins in Unity] In Unity, you normally use scripts to create functionality but you can also inclu ...

  9. centos7 安装mysql5.6.32

    1.  检查是否存在旧的mysql,执行: rpm -qa|grep -i mysql PS:若存在旧mysql,删除查询到的旧mysql,执行: rpm -e --nodeps  XXXX      ...

  10. Opencv 图片直方图

    #include <iostream>#include <opencv2/opencv.hpp> using namespace std;using namespace cv; ...