IO进程线程第三天(7.31)time,localtime,文件io函数:open,umask,close,write,read,lseek,stat,

chatgpt/2023/9/23 7:02:49

用read函数完成图片文件拷贝

#include<stdio.h>
#include<head.h>
int main(int argc, const char *argv[])
{//umask(0);//将文件权限掩码改为0,使得其他用户可写int fd = open("/home/ubuntu/图片/2.jpg",O_RDONLY,0777);//打开图片if(fd<0){   ERR_MSG("open");return -1; }   printf("打开成功\n");int ff = open("1.jpg",O_WRONLY|O_CREAT|O_TRUNC,0777);//创建图片if(ff<0){   ERR_MSG("open");return -1; }   printf("打开成功\n");char a[20]="";ssize_t res;while(1){   res=read(fd,a,sizeof(a)-1);if(0==res)break;if(write(ff,a,res)<0){ERR_MSG("write");return -1; }}   printf("拷贝完成\n");if(close(fd)<0){   ERR_MSG("close");return -1;                                                                                  }   printf("关闭成功\n");if(close(ff)<0){   ERR_MSG("close");return -1; }   printf("关闭成功\n");return 0;
} 

用read实现计算文件大小

#include<stdio.h>
#include<head.h>
int main(int argc, const char *argv[])
{int ff = open("1.jpg",O_RDONLY);if(ff<0){   ERR_MSG("open");return -1; }   printf("打开成功\n");off_t size=lseek(ff,0,SEEK_END);printf("图片大小为:%ld\n",size);char a;long count=0;                                                                                                                lseek(ff,0,SEEK_SET);while(read(ff,&a,1)>0){   count++;}   printf("图片大小为:%ld\n",count);if(close(ff)<0){   ERR_MSG("close");return -1; }   printf("关闭成功\n");return 0;
} 

 将文件权限提取修改成循环方式

#include<stdio.h>
#include<head.h>
void get_filePermission(mode_t m)
{int a[9]={0400,0200,0100,0040,0020,0010,0004,0002,0001};char b[9]={'r','w','x','r','w','x','r','w','x'};for(int i=0;i<9;i++){   if((m&a[i])==0)putchar('-');elseputchar(b[i]);}   
}
int main(int argc, const char *argv[])
{struct stat buf;if(stat("./time.c",&buf)<0){   ERR_MSG("stat");return -1; }   printf("mode: 0%o\n",buf.st_mode);get_filePermission(buf.st_mode);printf("\n");printf("link: %ld\n",buf.st_nlink);printf("uid: %d\n",buf.st_uid);printf("gid: %d\n",buf.st_gid);printf("size: %ld\n",buf.st_size);printf("time: %ld\n",buf.st_ctime);return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

mysql 非definer用户如何查看存储过程定义

当我们创建存储过程时&#xff0c;如果没有显示指定definer&#xff0c;则会默认当前用户为该sp的definer&#xff0c;如果没有相关授权&#xff0c;则其他用户是看不了这个sp的。 比如用户zhenxi1拥有如下权限&#xff1a; 它拥有对dev_nacos库的查询权限&#xff0c;这个时候…

如何理解MySQL的事务

如何理解MySQL的事务 在日常开发中&#xff0c;我们不可避免地会碰到需要操作数据库的场景。这时&#xff0c;MySQL的事务处理就变得至关重要。如果我们对MySQL的事务概念和使用方法有深刻理解&#xff0c;那么在编程时就可以更好地保证数据的一致性和完整性。 什么是MySQL的…

【前端基础】通过 JSON.parse(JSON.stringify(obj)) 来实现深拷贝

最简便的实现方式是使用 JSON.parse(JSON.stringify(obj)) 来进行深拷贝。这种方法可以很方便地实现深拷贝&#xff0c;并且能够确保两个对象之间不会相互影响。 可以像下面这样使用 JSON.parse(JSON.stringify(obj)) 来实现深拷贝&#xff1a; // 使用 JSON.parse(JSON.stri…

ChatGPT在法律行业的市场潜力

​ChatGPT现在已经成为我们的文字生成辅助工具、搜索引擎助手&#xff0c;许多体验过它的朋友会发现对它越来越依赖&#xff0c;并将其逐渐融入到自己的日常工作、生活。但有一点值得注意&#xff1a;这种人工智能除了技术可行、经济价值可行还要与相关规范即人类普遍的价值观念…

7月31日,每日信息差

1、东京电视台将在中国推广内容IP“刀姬” 2、沙特是中国在中东地区首个千亿美元级贸易伙伴 3、国家发改委&#xff1a;促消费政策不是所谓的“掏空钱包”“透支需求”。让居民开心花钱、买到心仪的商品和服务&#xff0c;本身就是利民生的好事 4、英国电信集团任命艾莉森柯…

selinum官网文档阅读总结(day 1)

1.selinum的概念和用途 selinum是一套包含了脚本录制&#xff0c;脚本处理&#xff0c;协议规范的自动化测试工具集。其中协议规范里&#xff0c;典型的有web页面操作规范RC和WebDriver。WebDriver针对各浏览器开发&#xff0c;利用操作系统级的调用来模拟用户输入。 2.selin…

Hutool工具类FileUtil----文件(夹)创建、删除、添加数据

1.文件(夹)创建 //创建文件&#xff0c;多级目录会循环创建出来String path "d:/hutool_test/hutool_test.txt";File touch FileUtil.touch("d:/hutool_test/hutool_test.txt");2.文件&#xff08;夹&#xff09;的校验 boolean isFile FileUtil.isFil…

阿里Java开发手册~OOP 规约

1. 【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法&#xff0c;无谓增加编译器解析成 本&#xff0c;直接用 类名 来访问即可。 2. 【强制】所有的覆写方法&#xff0c;必须加 Override 注解。 说明&#xff1a; getObject() 与 get 0 bject() 的问题。…
推荐文章