当前位置: 首页 > 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.sadfv.cn/news/373404/

相关文章:

  • 教师网站建设机培训体会免费下载王烨个人简历
  • 彩票网站建设维护阿里云网站建设视频
  • 二元期货交易网站开发建设铝合金窗网站
  • 做的好的音乐网站的特点建工网招聘
  • 蓬莱网站建设哪家专业学的建筑专业后悔一辈子
  • 省通信管理局 网站备案制度流程云浮疫控动态
  • wordpress 升级方法东莞百度搜索排名优化
  • 重庆网站备案最快几天剪辑培训班一般学费多少
  • 网站建设费记什么科目现在如何进行网上推广
  • 网站构建器十大网站
  • 现代著名设计师及作品手机网站关键词seo
  • 网站如何建设目录五金网站建设
  • 个人网站设计 优帮云免费素材下载网站有哪些
  • 网站备案关闭影响排名发布信息的免费平台有哪些
  • 自助 建站网站设计 扁平化
  • 昌邑做网站漯河网站建设公司
  • 咸阳专业网站开发哪家好网站开发怎么配合
  • 中国电力建设股份部官方网站买了dede模板之后就可以做网站
  • 国外设计网站pinterest怎么打不开中航长江建设工程有限公司网站
  • 做法城乡建设部网站网络logo设计
  • 可以做防盗水印的网站德州市建设局质监站网站
  • 哈尔滨的网站建设公司石景山做网站的公司
  • 去哪里可以做网站广告公司的电话
  • 网站备案可以强制撤销吗佛山网站建设的大品牌
  • 网站删除留言板功能删除简单的网站构建的基本流程
  • 太原制作网站的工作室网站备案帐号
  • 青岛网站建设服务器wordpress 后台 留言
  • 河南和城乡建设厅网站小程序登陆官网
  • 怎么建立微信网站成都营销网站设计
  • 昆明网站建设大全恐龙网站建设