C语言ftruncate函数细节问题

C语言ftruncate函数

介绍

ftruncate函数用来控制一个文件的大小的,可以理解为文件是一个可以变化长短的长条型的温度计,文件内容是温度计里面的水银液体,ftruncate函数就是一个可以给温度计进行降温和升温的工具,文件起始位置就是温度计的底部,文件结束位置就是温度计的顶部,文件内容为空,温度计的液体就在温度计的底部,ftruncate函数可以控制这个文件内容的大小,也就是文件的大小。

头文件

#include <unistd.h>

语法格式

int ftruncate(int fd, off_t length);

参数:

  1. 参数1:fd是一个文件描述符,可以使用fileno函数将文件指针变量转换文件描述符,具体代码:fileno(fp) fp是文件指针,fileno(fp)的返回值就是文件描述符。
  2. 参数2:length是文件的大小,设为 0 表示文件大小为0,也就是清空文件。
    若 length 大于文件大小,则文件被扩充,扩充部分用 ‘\0’ 填充。
    若 length 小于文件大小,则文件的内容从文件末尾开始删除,直到文件大小等于length。

注意:

在使用ftruncate函数后,文件指针的位置不会变化。

举例

FILE * fp;
//打开文件 
if((fp = fopen("图书信息.txt","wb+")) == NULL)
{
	printf("打开文件失败!\n");
	exit(-1);	
}
char a[4] = "abc";//'\n'结束符占一个字节
rewind(fp);//文件指针设置到文件起始位置
printf("%d\n", ftell(fp));//输出文件指针距离起始位置有几个字节 0个字节
fwrite(a, 1, 4, fp);//写入文件
printf("%d\n", ftell(fp));//输出文件指针距离起始位置有几个字节 4个字节
ftruncate(fileno(fp), 8);//将文件的大小设置为8个字节
printf("%d\n", ftell(fp));// 4个字节 文件指针位置无变化

文章结束

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值