关于ftruncate()
来源:互联网 发布:a的伴随矩阵的秩 编辑:程序博客网 时间:2024/06/12 12:39
函数功能:改变文件大小
相关函数:open、truncate
表头文件:#include <unistd.h>
函数原型:int ftruncate(int fd, off_t length)
函数说明:ftruncate()会将参数fd指定的文件大小改为参数length指定的大小。参数fd为已打开的文件描述词,而且必须是以写入模式打开的文件。如果原来的文件件大小比参数length大,则超过的部分会被删去
返 回 值:0、-1
错误原因:errno
EBADF 参数fd文件描述词为无效的或该文件已关闭
EINVAL 参数fd为一socket并非文件,或是该文件并非以写入模式打开
使用方法:fd一般可以fileno(FILE *fp)获取,标示文件当前的大小,lenggth则可由用户定义。此函数一般用在文件初始化或者重新为文件分配空间时。
注意事项:此函数并未实质性的向磁盘写入数据,只是分配了一定的空间供当前文件使用。当 fd<length时,此时如果使用十六进制编辑工具打开该文件,你会发现文件末尾多了很多00,这就是执行这个函数后的效果。如果发生系统复位或 者装置掉电以后,该函数所产生的作用将被文件系统忽略,也就是说它所分配的空间将不能被识别,文件的大小将会是最后一次写入操作的区域大小,而非 ftruncate分配的空间大小,也就是说,文件大小有可能会被改变。
解决方法:可以在执行完ftruncate之后,在新空间的末尾写入一个或以上字节的数据(不为Ox00),这样新空间则不为空,文件系统会把这部分空间当成这个文件的私有空间处理,而不会出现文件大小改变的错误。
相关函数:open、truncate
表头文件:#include <unistd.h>
函数原型:int ftruncate(int fd, off_t length)
函数说明:ftruncate()会将参数fd指定的文件大小改为参数length指定的大小。参数fd为已打开的文件描述词,而且必须是以写入模式打开的文件。如果原来的文件件大小比参数length大,则超过的部分会被删去
返 回 值:0、-1
错误原因:errno
EBADF 参数fd文件描述词为无效的或该文件已关闭
EINVAL 参数fd为一socket并非文件,或是该文件并非以写入模式打开
使用方法:fd一般可以fileno(FILE *fp)获取,标示文件当前的大小,lenggth则可由用户定义。此函数一般用在文件初始化或者重新为文件分配空间时。
注意事项:此函数并未实质性的向磁盘写入数据,只是分配了一定的空间供当前文件使用。当 fd<length时,此时如果使用十六进制编辑工具打开该文件,你会发现文件末尾多了很多00,这就是执行这个函数后的效果。如果发生系统复位或 者装置掉电以后,该函数所产生的作用将被文件系统忽略,也就是说它所分配的空间将不能被识别,文件的大小将会是最后一次写入操作的区域大小,而非 ftruncate分配的空间大小,也就是说,文件大小有可能会被改变。
解决方法:可以在执行完ftruncate之后,在新空间的末尾写入一个或以上字节的数据(不为Ox00),这样新空间则不为空,文件系统会把这部分空间当成这个文件的私有空间处理,而不会出现文件大小改变的错误。
0 0
- 关于ftruncate()
- ftruncate
- ftruncate
- ftruncate
- ftruncate()
- ftruncate函数
- ftruncate()函数
- ftruncate函数
- ftruncate函数
- ftruncate函数
- ftruncate() 函数解释
- ftruncate函数的使用
- open, ftruncate, mmap, stat
- Linux ftruncate函数
- 文件函数ftruncate
- ftruncate函数详解
- truncate and ftruncate Functions
- ftruncate 函数的使用
- 【Python】Learn Python the hard way, ex1 简单print语句
- GWXZ模拟题之衷心伴侣
- 2015/10/06写下的归并排序、快速排序、二分查找
- linux shell 管道命令(pipe)使用及与shell重定向区别
- 黑马程序员——【学习笔记】多线程——多线程概述及其建立
- 关于ftruncate()
- struts的国际化
- Core Animation动画学习1——CALayer的基本使用
- NYoj拦截导弹(动态规划-最长上升子序列变形)
- 黑马程序员——JAVA基础--面向对象思想
- EntityFramework走马观花之 CRUD(中)
- 强大的grep用法详解:grep与正则表达式
- FZU 2200 cleaning (环形dp)
- 我的新博客地址