ftruncate函数的使用

定义:

定义函数 int ftruncate(int fd,off_t length);

作用:

ftruncate会将参数fd指定的文件大小改为参数length指定的大小。

说明:

man ftruncate看一下:

DESCRIPTION
       The truncate() and ftruncate() functions cause the regular file named by path or referenced by fd to be truncated to a size of precisely length bytes.
       If the file previously was larger than this size, the extra data is lost.  If the file previously was shorter, it is extended,  and  the extended part reads as null bytes ('\0').
       
The file offset is not changed.(文件偏移量不变)

ftruncate()会将参数fd指定的文件大小改为参数length指定的大小。 参数fd为已打开的 文件描述词 ,而且必须是以写入模式打开的文件。 如果原来的文件大小比参数length大,则超过的部分会被删去。

所以如果在用ftruncate函数设置某文件(原来存有十个字节的字符串)的大小为0时,此时该文件的指针指向的位置还是原来字符串的结尾处,即从头开始的第十一个字节处,如果想再次向文件中写入数据,需要调整该文件的文件指针的位置到开头处,可以用lseek()或者rewind()。这样就不会出错了!(自己可以写个小程序,这里就不赘述了)
返回值
执行成功则返回0,失败返回-1,错误原因存于errno
EBADF 参数fd文件描述词为无效的或该文件已关闭。
EINVAL 参数fd 为一socket 并非文件,或是该文件并非以写入模式打开。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值