• C++裁剪文件,截断文件,_chsize()


      

    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的时候可以直接写入,不需要裁剪。

  • 相关阅读:
    设计模式之观察者模式
    设计模式之装饰器模式
    redis.conf常用配置说明
    log4j日志框架的使用
    Redis入门简述
    Linux用户组权限简单解析
    MyBatis入门简述
    初学Linux要掌握的命令
    SpringIOC原理简述
    Java单元测试神器之Mockito
  • 原文地址:https://www.cnblogs.com/liutianchen/p/5444785.html
Copyright © 2020-2023  润新知