【个人笔记】truncate()

#include <unistd.h>

int truncate(const char * path, off_t length);


truncate()会将参数path 指定的文件大小改为参数length 指定的大小. 如果原来的文件大小比参数length 大, 则超过的部分会被删去.

man 2 truncate:

NAME
       truncate, ftruncate - truncate a file to a specified length

SYNOPSIS
       int truncate(const char *path, off_t length);
       int ftruncate(int fd, off_t length);

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.
       If  the  size  changed,  then the st_ctime and st_mtime fields (respectively, time of last status change and time of last modification; see stat(2)) for the file are updated, and the set-user-ID and
       set-group-ID permission bits may be cleared.
       With ftruncate(), the file must be open for writing; with truncate(), the file must be writable.



#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(void)
{
 int fd;

 const char *s1 = "0123456789";
 const char *s2 = "abcde";

 fd = open("test.txt", O_CREAT | O_WRONLY | O_TRUNC, 0666);

 ftruncate(fd, 0);

 close(fd);

 return 0;
}




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值