当前位置: 首页 > news >正文

武城做网站怎么建网站做推广

武城做网站,怎么建网站做推广,tk域名网站多少,微网站 百度地图目录 1.为什么需要文件截断#xff1f; 2.truncate函数介绍 2.1 truncate函数 2.2 truncate函数内核源码分析 2.3 truncate函数使用示例 3.ftruncate函数介绍 3.1 ftruncate函数 3.2 ftruncate函数内核源码分析 3.3 ftruncate函数使用示例 3.4 ftruncate和文件偏移量…目录 1.为什么需要文件截断 2.truncate函数介绍 2.1 truncate函数 2.2 truncate函数内核源码分析 2.3 truncate函数使用示例 3.ftruncate函数介绍 3.1 ftruncate函数 3.2 ftruncate函数内核源码分析 3.3 ftruncate函数使用示例 3.4 ftruncate和文件偏移量的关系 4.ftruncate和truncate区别 1.为什么需要文件截断 文件截断是指将文件的长度截断为指定大小或者完全清空文件内容。在操作系统中文件通常由一系列连续的数据块组成每个数据块存储文件的一部分内容。通过执行文件截断操作可以修改文件的大小或清空文件内容。 在执行文件截断操作时需要注意以下几点 如果截断后的文件大小小于原始大小那么超出截断长度的部分内容将被删除。如果截断后的文件大小大于原始大小那么新增部分的内容将会以空字符填充。需要有适当的权限来执行文件截断操作否则可能会失败。 2.truncate函数介绍 2.1 truncate函数 #include unistd.h #include sys/types.hint truncate(const char *path, off_t length); 函数简介truncate函数是一个用于文件截断的系统调用函数在C语言程序中使用。该函数可以根据指定的大小截断文件使其变为指定大小或者完全清空文件内容。 函数参数 path是要截断的文件路径。 length要截断的目标大小。 函数返回值 成功返回0。 失败失败返回-1并设置errno。 2.2 truncate函数内核源码分析 图 2-1 truncate函数内核源码调用流程 truncate函数通过文件路径名pathname获取struct path对象struct path记录了inode信息进行文件截断之前需要做一些异常判断比如inode是否是普通文件inode是否有写权限是否是追加模式等等通过异常检测后需要设置inode新属性新属性包括文件大小等信息再通过notify_change函数通知inode完成新属性同步从而完成文件截断。 2.3 truncate函数使用示例 int truncate_test() {int ret truncate(TEST_FILE, 120);if (ret -1) {perror(truncate error);return -1;}return 0; }3.ftruncate函数介绍 3.1 ftruncate函数 #include unistd.h #include sys/types.hint ftruncate(int fd, off_t length);函数简介ftruncate函数是一个用于文件截断的系统调用函数它可以在C语言程序中使用。该函数通过文件描述符来操作文件将文件截断为指定的大小。 函数参数 fd文件描述符。 length要截断的目标大小。 函数返回值 成功返回0。 失败失败返回-1并设置errno。 3.2 ftruncate函数内核源码分析 图 3-1 ftruncate函数内核源码调用流程 ftruncate函数内核调用流程和和truncate函数相似不同点在与ftruncate函数通过fdget函数获取struct file对象struct file对象有inode记录信息通过struct file对象完成inode新属性修改从而完成文件截断。 3.3 ftruncate函数使用示例 #define TEST_FILE /tmp/test.txtvoid print_buf(unsigned char *buf, int len) {if (len 0) {printf(error len:%d\n, len);return;}for (int i 0; i len; i) {printf(%c%02X , ((i % 16) || (i 0)) ? : \n, buf[i]);}printf(\n); }void print_pos(int fd) {int pos lseek(fd, 0, SEEK_CUR);printf(cur pos:%d\n, pos); }int read_len_data(int fd, unsigned int len) {if (len READ_BUF_SIZE) return -1;char rbuf[READ_BUF_SIZE] {0};int ret read(fd, rbuf, len);print_buf((unsigned char *)rbuf, ret);return ret; }int write_len_data(int fd, unsigned char len, char ch) {unsigned char sbuf[BUF_SIZE] {0};for (unsigned char i 0; i len; i) {sbuf[i] ch;}int ret write(fd, sbuf, len);if (ret -1) {perror(write error);return -1;}return 0; }int ftruncate_test() {int fd open(TEST_FILE, O_RDWR | O_CREAT, 0644);if (fd -1) {perror(open error);return -1;}write_len_data(fd, 100, a);int ret ftruncate(fd, 20);if (ret -1) {perror(ftruncate error);close(fd);return -1;}print_pos(fd);lseek(fd, 0, SEEK_SET);read_len_data(fd, 1000);close(fd);return 0; } 3.4 ftruncate和文件偏移量的关系 ftruncate函数不会改变文件偏移量。可以分为两种情况讨论 情况1ftruncate截断文件文件长度变小文件偏移量还是保留上一次记录即使文件长度变为0文件偏移量依然保持不变。情况2ftruncate填充文件文件长度变大文件偏移量还是保留上一次记录。 从ftruncate内核源码分析ftruncate未修改文件偏移量f_pos的值所以ftruncate不影响文件偏移量。 4.ftruncate和truncate区别 图 4-1 ftruncate和truncate区别 如图4-1truncate和ftruncate共同点都是修改struct inode属性。不同点是两者采用的路径不一样 ftruncate函数通过使用fd映射struct file对象再通过struct file对象查找到inode实例从而修改inode实例。 truncate函数没有fd参数采用文件路径名获取struct path路径结构对象再通过struct path对象获取inode实例从而修改inode实例。
http://www.huolong8.cn/news/373404/

相关文章:

  • 国外设计网站app有哪些自动化毕设题目网站开发
  • 彩票网站开发彩票网站搭建加工接单网
  • 网站建设培训教程新手入门到精通网站关键词数量
  • 怎么申请网站域名赚钱让别人做一个网站需要多少钱
  • 手机网站怎么提高关键词wordpress导航网
  • 做网站自学网页设计与制作考试题及答案
  • 昆明网站制作定制公司wordpress网页后台
  • 男女直接做的视频上那个网站本地网站搭建软件
  • 枣庄市网站建设上海做网站的公司联系方式
  • php做网站好吗电子商务专业就业方向及前景分析
  • 成都科技网站建设联系电话六安的网页制作
  • 便民工具 网站开发阿里云Windows建立WordPress
  • 杭州公司官方网站制作盐城企业做网站多少钱
  • 郑州制作网站怎么用云主机做网站
  • 做网站需要租服务器么免费建立网站哪个好
  • 网站的建立与运营云空间布置网站
  • 上海网站se0优化公司免费咨询律师回答在线
  • 数字化档案馆及网站的建设网站建设公司行业描述
  • 中山市小榄新意网站设计有限公司电子书新手学做网站
  • 温州市建设小学网站首页网络推广网站套餐
  • 做外贸不能访问国外网站怎么办网络营销的特点主要体现为()
  • 网页版云游戏合肥做网站优化
  • 阿坝州做网站公司wordpress可以自己写代码吗
  • 自贡网站平台开发WordPress导出单页
  • 网站建设价格与方案如何在自己的电脑上做网站
  • 视频网站建设模版医疗培训网站建设
  • 做网站工作内容品牌建设三年行动方案
  • 做个自己的网站需要多少钱dede 网站地图模板
  • 中国美食网站模板免费下载WordPress订阅下载插件
  • 齐博网站模板手机网站建设书籍