linux truncate文件,linux系统编程:用truncate调整文件大小

truncate的使用非常简单:

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

参数1:文件名

参数2:  文件需要被调整的大小

length 大于 文件大小, 文件后面会填充空白字节或者空洞

length 小于 文件大小, 文件多出的部分,会被舍弃

源代码:

f12d4a9165be0c481992f693fe5165bc.png

45d4990ca000170a06f9b53d87e16a39.png

1 /*================================================================

2 * Copyright (C) 2018 . All rights reserved.

3 *

4 * 文件名称:trunc.c

5 * 创 建 者:ghostwu(吴华)

6 * 创建日期:2018年01月11日

7 * 描 述:调整文件大小

8 *

9 ================================================================*/

10

11 #include

12 #include

13 #include

14 #include

15 #include

16 #include

17

18 int main(int argc, char *argv[])

19 {

20 if( argc < 3 || strcmp( argv[1], "--help" ) == 0 ) {

21 printf( "usage:%s filename s\n", argv[0] );

22 exit( -1 );

23 }

24

25 if( argv[2][0] != 's' ) {

26 printf( "设置文件的大小,需要用s开头\n" );

27 exit( -1 );

28 }

29

30 char* endptr;

31 long int len = strtol( &argv[2][1], &endptr, 10 );

32 if( len == LONG_MIN || len == LONG_MAX ) {

33 printf( "参数转换失败\n" );

34 exit( -1 );

35 }

36

37 truncate( argv[1], len );

38

39 return 0;

40 }

View Code

完整的测试:

ghostwu@ubuntu:~/c_program/tlpi/chapter5$ ls -l test.txt

-rw-rw-r-- 1 ghostwu ghostwu 410 1月 11 16:09 test.txt

ghostwu@ubuntu:~/c_program/tlpi/chapter5$ ./trunc test.txt s500

ghostwu@ubuntu:~/c_program/tlpi/chapter5$ ls -l test.txt

-rw-rw-r-- 1 ghostwu ghostwu 500 1月 11 16:38 test.txt

ghostwu@ubuntu:~/c_program/tlpi/chapter5$ vim test.txt

ghostwu@ubuntu:~/c_program/tlpi/chapter5$ ./trunc test.txt 300

设置文件的大小,需要用s开头

ghostwu@ubuntu:~/c_program/tlpi/chapter5$ ./trunc test.txt s300

ghostwu@ubuntu:~/c_program/tlpi/chapter5$ ls -l test.txt

-rw-rw-r-- 1 ghostwu ghostwu 300 1月 11 16:38 test.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python数据分析与展示 pdf课件_python数据分析与展示 课件 相关实例(示例源码)下载 - 好例子网...

开发语言&#xff1a;Python | 大小&#xff1a;9.84KB | 发布时间&#xff1a;2020-05-13 | 立即下载 开发语言&#xff1a;Python | 大小&#xff1a;0.24M | 发布时间&#xff1a;2019-09-09 | 立即下载 开发语言&#xff1a;Python | 大小&#xff1a;0.15M | 发布时间&…

如何在 ASP.Net Core 中使用 SignalR

SignalR for ASP.Net Core 是 SignalR 的浴火重生版&#xff0c;允许你在 ASP.Net Core 中实现实时通讯&#xff0c;这里的 实时 意味着双方都能快速的感知对方发来的消息&#xff0c;比如&#xff1a;一旦 server 端有需要推送的内容将会直接 push 到 client&#xff0c;这和原…

搞笑动图:这些痛,只有程序员懂…

“代码上线后又追加了新特性” “在生产环境做 hotfix” “刚调稳定的系统&#xff0c;公司叕空降了一位架构师&#xff0c;叕要重构现有系统…… ” “当程序员听客户说还在用 IE 时” “当黑客拿到 root 权限之后” “代码进入循环分支后” “项目交接&#xff0c;客户要求开…

python中闭包不是立刻执行_一道神奇的Python面试题,你会吗?

无意间&#xff0c;看到这么一道Python面试题&#xff1a;以下代码将输出什么&#xff1f;def testFun():temp [lambda x : i*x for i in range(4)]return tempfor everyLambda in testFun():print (everyLambda(2))脑中默默一想&#xff0c;这还用说么&#xff0c;肯定是&…

.net 中通用的formatstring格式符整理

格式化日期和数字的字符串经常要用到这个, 就把帮助里面的东西大概整理了一些列在这里了. 下表描述了用来格式化 DateTime 对象的标准格式说明符。 格式说明符名称说明d短日期模式显示由与当前线程关联的 DateTimeFormatInfo.ShortDatePattern 属性定义的模式或者由指定格式提供…

linux内核分为子系统,Linux内核内存管理子系统分析【转】

还是那张熟悉的老图&#xff1a;Linux内核子系统简介(由七个部分组成)Linux内存管理模型&#xff1a;1. 内存管子系统职能&#xff1a;1> 管理虚拟地址与物理地址的映射2> 管理物理内存的分配2. 地址映射管理1> 虚拟地址空间分布&#xff1a;linux采用的是一种虚拟地…

python打包成安装包_把 python 程序打包成 egg 或者 whl 安装包

1.1 安装setuptools 首先要安装setuptools工具。Debian/Ubuntu下可以直接使用apt安装&#xff1a; $ sudo apt-get install python-setuptools 或者通过pip安装&#xff1a; $ pip install setuptools 更新setuptools&#xff1a; $ pip install --upgrade setuptools 或者下载…

关于C#事件处理函数中的参数(object sender, EventArgs e)

1、是事件源&#xff0c;表示触发事件的那个组件 如(button/label/listview...)&#xff0c;比如说你单击button&#xff0c;那么sender就是button2、EventArgs是事件参数&#xff0c;它用来辅助你处理事件比如说你用鼠标点击窗体&#xff0c;那么EventArgs是会包含点击的位置…

spss22.0统计分析从入门到精通_数据分析最全资料:SPSS/MATLAB/SQL/SAS/EXCEL经典教材+视频教程,快速入门!...

可以说当今社会数据就是力量。数据分析能力已经成为各个行业必备的技能&#xff0c;如果能熟练掌握数据分析技能&#xff0c;不管是留学申请还是以后的就业&#xff0c;都会是一个很大的加分项。但是目前国内很少有高校专门开设数据分析课程&#xff0c;想要掌握技能大部分要靠…

可反复擦写5万次的手写板,竟然还能用橡皮擦能清除屏幕!

作为一名文艺青年&#xff0c;平时写字画画是我的一大爱好。 心情不错&#xff0c;来个创作&#xff01; 还记得我们之前介绍过的Boogie Board电子手写板吗&#xff1f; 小木用的就是它。 虽然好用&#xff0c;只不过有时候不小心画错了&#xff0c;只能重新来。 伤心啊…… 不…

普通用户杜绝不请自来的邮件对策

1、给自己的信箱起个“复杂用户名”:许多人习惯用自己姓名的拼音作为用户名&#xff0c;但一般过于简单&#xff0c;这样被垃圾邮件制造者捕捉到的机率很高。因此在申请邮箱时&#xff0c;不妨起个保护性强一点的用户名&#xff0c;比如英文和数字的组合&#xff0c;尽量长一点…

[Abp 源码分析]权限验证

点击上方蓝字关注我们0.简介Abp 本身集成了一套权限验证体系&#xff0c;通过 ASP.NET Core 的过滤器与 Castle 的拦截器进行拦截请求&#xff0c;并进行权限验证。在 Abp 框架内部&#xff0c;权限分为两块&#xff0c;一个是功能(Feature)&#xff0c;一个是权限项(Permissio…

cocoscreator editbox 只允许数字_《Cocos Creator游戏实战》做一个数字调节框

当玩家购买道具的时候&#xff0c;一个个买可能会比较麻烦&#xff0c;用数字调节框的话玩家一次性就可以买好几十个了(钱够的话)。运行效果如下&#xff1a;Cocos Creator版本&#xff1a;2.2.0公号"All Codes"后台回复"数字调节框"&#xff0c;获取该项目…

linux自动应答,08. 创建 ks.cfg自动应答文件

Kiskstart 安装步骤比较 Cobbler 自动化部署复杂些&#xff0c;众所周知&#xff0c;随着时间推移&#xff0c;行业会逐步的降低软件操作难度以作为软件提升的标志&#xff0c;于是 Cobbler 产生掩盖或者帮操作者完成了许多工作&#xff0c;于是使用就更简单。但是使用 Kisksta…

python类变量共享吗_第7.12节 可共享的Python类变量

第7.12节 可共享的Python类变量一、 引言在上节已经引入介绍了类变量和实例变量&#xff0c;类体中定义的变量为类变量&#xff0c;默认属于类本身&#xff0c;实例变量是实例方法中定义的self对象的变量&#xff0c;对于每个实例都是独有数据&#xff0c;而类变量是该类所有…

为什么一流成功人士的闹钟都定在早晨5:57?

对很多人来说&#xff0c;早晨时分是一天中最匆忙的时段。近年来&#xff0c;我在研究人们如何利用时间的过程中发现&#xff0c;市场上铺天盖地的媒体教你如何利用早晨的时间。 美国国家睡眠基金会发布的一项睡眠调查结果显示&#xff0c;在工作日的早晨&#xff0c;30-50岁的…

命令行小技巧

我们平时使用Linux的时候经常遇到这样一个问题&#xff0c;举例有这样一种情况&#xff1a;执行命令 $ cp /etc/apt/sources.list /etc/apt/sources.list.bak 这里面有个问题&#xff0c;明明 /etc/apt/sources 这几个字都是一样的&#xff0c;为什么要打两遍&#xff1f;这样的…

统计学习导论_统计机器学习之扫盲导论篇

机器学习之扫盲导论篇来都来了&#xff0c;不关注一下吗&#xff1f;&#xff1f;人工智能是当下最火的词&#xff0c;而机器学习就是它的灵魂。现在超级多搞金融的人已经用到很深的机器学习模型了&#xff0c;更别提互联网企业的大佬们了&#xff0c;比如&#xff1a;(这是一篇…

linux环境下创建postgis数据库,linux下搭建postgresql、postgis、pg_pathman环境步骤详解...

操作系统&#xff1a;centOS6.6安装postgreSQL9.6.2安装命令&#xff1a;./postgresql-9.6.3-2-linux-x64.run之后按照图形界面操作安装&#xff0c;语言选择zh_CN UTF-8安装geos-3.6.0(会报错&#xff0c;暂时不用管)安装命令&#xff1a;tar xjvfgeos-3.6.0.tar.bz2cd geos-3…

[Abp 源码分析]异常处理

点击上方蓝字关注我们Abp 框架本身针对内部抛出异常进行了统一拦截&#xff0c;并且针对不同的异常也会采取不同的处理策略。在 Abp 当中主要提供了以下几种异常类型&#xff1a;异常类型描述AbpExceptionAbp 框架定义的基本异常类型&#xff0c;Abp 所有内部定义的异常类型都继…