2.29文件IO-进程 作业

1.要求将当前路径下,所有文件的权限及最后一次的访问时间提取出来,写入到file.txt中! !提示: opendir readir stat-->提取出来的数据写入到file.xt中

#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>
#include <unistd.h>
#include <time.h>
#include <errno.h>int main(int argc, const char *argv[])
{DIR* op = opendir("../01标准IO");if( op == NULL ){perror("opendir");return -1;}printf("文件打开成功!!!\n");FILE* fop = fopen("./test2_29hk.txt","w");struct dirent* rd = NULL;  struct stat msg;while(1){rd = readdir(op);if(rd == NULL ){if( 0 == errno)printf("文件以读完!!\n");elseperror("readdir\n");break;}if( stat(rd->d_name,&msg) < 0 ){perror("stat\n");return -1;}printf("%o--->",msg.st_mode);struct tm* date;date = localtime(&msg.st_ctime);printf("%04d-%02d-%02d %02d:%02d:%02d\n",\date->tm_year+1900, date->tm_mon+1, date->tm_mday,\date->tm_hour, date->tm_min, date->tm_sec);fprintf(fop,"%o  %04d-%02d-%02d %02d:%02d:%02d\n",msg.st_mode,\date->tm_year+1900, date->tm_mon+1, date->tm_mday,\date->tm_hour, date->tm_min, date->tm_sec);}if(fclose(op_w) < 0){perror("fclose");return -1;}if( closedir(op) < 0){perror("closedir");return -1;}return 0;
}

使用文件IO对图片进行拷贝。要求子进程拷贝后半部分,父进程拷贝前半部分。提示:

1.图片就是一个普通文件,普通文件怎么拷贝,图片就怎么拷贝。读一个字符,写一个字符,循环size/2次

2.diff可以查看两个文件是否一致,例如diff 1.png 2.png,可以查看两张图片是否一致

3.终端输入: eog 1.png可以打开1.png这张图片

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>int main(int argc, const char *argv[])
{	struct stat msg;if( stat("./cq.jpg",&msg) < 0){perror("stat");return -1;}printf("%ld\n",msg.st_size);int size = msg.st_size;int cq = open("./cq.jpg",O_RDONLY);int op1 = open("./f.jpg",O_WRONLY|O_CREAT|O_TRUNC,0775);
//	int op2 = open("./z.jpg",O_WRONLY|O_CREAT|O_TRUNC,0775);pid_t cpid = fork();if( cpid > 0){//父char c;int i=0;while( read(cq, &c, sizeof(c)) > 0 && i<(size/2) ){	write(op1, &c,sizeof(c));i++;}off_t d1 = lseek(cq, 0, SEEK_CUR);printf("第一次移动到大小%ld\n",d1);}else if( cpid == 0 ){// 子sleep(1);char d;int j=0;off_t d2 = lseek(cq, -1, SEEK_CUR);while( read(cq, &d, sizeof(d)) > 0){write(op1, &d,sizeof(d));}}else{perror("fork");return -1;}while(1){sleep(1);}close(op1);return 0;
}

 

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

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

相关文章

详解kubernetes中的Pod生命周期

目录 1.1 Pod生命周期概述 1.2 创建和终止 1.2.1 Pod的创建过程 1.2.2 Pod的终止过程 1.3 初始化容器 1.3.1 案例 1.4 容器探测 1.4.1 Exec示例 1.5 重启策略 1.1 Pod生命周期概述 Pod中的生命周期主要包含以下过程&#xff1a; pod创建过程 运行初始化容器&#xff…

Mysql Day07

存储过程 -- 存储过程基本语法 -- 创建 create procedure p1() begin select count(*) from student; end; -- 调用 call p1(); -- 查看 select * from information_schema.ROUTINES where ROUTINE_SCHEMA itcast; show create procedure p1; -- 删除 drop procedure if exis…

weak 的实现原理

iOS 在运行时维护着一个全局的弱引用表&#xff0c;该表是一个 hash 表&#xff0c;hash表的 key 是 weak 对象的地址&#xff0c;value 是指向该对象的所有 weak 指针的地址数组。 /**全局的弱引用表&#xff0c;本质是一个hash结构&#xff0c;object作为key, weak_entry_…

npm 设置取消代理

npm 设置淘宝镜像源&#xff1a;npm install -g cnpm --registryhttps://registry.npm.taobao.org npm 查看当前配置信息 npm config listnpm 设置代理 npm config set proxy 127.0.0.1:7890 npm config set https-proxy 127.0.0.1:7890删除代理信息 npm config delete pro…

TCP/UDP模型:2024/2/29

作业1&#xff1a;TCP模型 服务器端&#xff1a; #include <myhead.h> #define SER_IP "192.168.199.129" #define SER_PORT 8899int main(int argc, const char *argv[]) {//1.创建用于连接的套接字文件int sfdsocket(AF_INET,SOCK_STREAM,0);if(sfd-1){per…

【蓝桥杯】赢球票(模拟、枚举、搜索)

一.题目描述 某机构举办球票大奖赛。获奖选手有机会赢得若干张球票。 主持人拿出 N 张卡片&#xff08;上面写着 1~N 的数字&#xff09;&#xff0c;打乱顺序&#xff0c;排成一个圆圈。你可以从任意一张 卡片开始顺时针数数: 1,2,3..... 如果数到的数字刚好和卡片上的数字…

深入理解nginx的https alpn机制

目录 1. 概述2. alpn协议的简要理解2.1 ssl的握手过程2.2 通过抓包看一下alpn的细节3. nginx源码分析3.1 给ssl上下文设置alpn回调3.2 连接初始化3.3 处理alpn协议回调3.4 握手完成,启用http协议4.4 总结阅读姊妹篇:深入理解nginx的https alpn机制 1. 概述 应用层协议协商(…

基于Siamese网络的zero-shot意图分类

原文地址&#xff1a;Zero-Shot Intent Classification with Siamese Networks 通过零样本意图分类有效定位域外意图 2021 年 9 月 24 日 意图识别是面向目标对话系统的一项重要任务。意图识别(有时也称为意图检测)是使用标签对每个用户话语进行分类的任务&#xff0c;该标签…

Shell:字符串的截取和替换

#/bin/sha="hello, world, 88"echo ${a:0}echo ${a:2:3}echo ${a/l/ii}echo ${a//l/ii}echo ${a#he}echo ${a#*,}echo ${a##*,}echo ${a%88}echo ${a%,*}echo ${a%%,*} 运行程序输出: hello, world, 88 llo heiilo, world, 88 heiiiio, woriid, 88 llo, world, 88 w…

网络编程学习

思维导图 代码练习 TCP实现通信 服务器端代码 #include <myhead.h> #define SER_IP "192.168.152.135" #define SER_PORT 8910 int main(int argc, const char *argv[]) {//&#xff11;创建用于监听的套接字int sfd -1;sfd socket(AF_INET,SOCK_STREAM,0)…

【mysql】 1819 - Your password does not satisfy the current policy requirements

创建mysql账户密码时候提示&#xff1a; 1819 - Your password does not satisfy the current policy requirements 1819-您的密码不符合当前策略要求 下面是执行的sql DROP DATABASE IF EXISTS company;CREATE DATABASE company CHARACTER SET utf8mb4 ;grant all on com…

VuePress + GitHub 搭建个人博客踩坑记录

最近想给我教练搭个网站,本来选的是 VuePress 框架,也折腾完了,起码是搭建出来了,踩的坑也都总结好了 但是最近发现了一个更简洁的模板: VuePress-theme-hope ,所以最终网站使用的样式是这个 不过我觉得这里面踩坑的记录应该还是有些价值的,分享出来,看看能不能帮到一些小伙伴~…

2000-2022年上市公司绿色专利申请占比/数据

2000-2022年上市公司绿色专利申请占比数据 1、时间&#xff1a;2000-2022年 2、来源&#xff1a;国家知识产权局、WIPO绿色专利清单 3、指标&#xff1a;年份、股票代码、股票简称、行业代码、省份、城市、区县、行政区划代码、城市代码、区县代码、首次上市年份、上市状态、…

Redis 由浅入深 (6) - Redis批量删除key

redis 删除缓存 日常工作当中经常会遇到删除Redis key的问题,如果是删除某个key,使用 DEL keyname 或者 EXPIRE keyname ttl 都可以实现。但如果想要一次性删除多个key应该怎么处理呢?Redis本身并不支持批量删除key的操作,下面我们就来看看如何巧妙地处理这类问题。 场景一…

黑马瑞吉外卖练习笔记

day2 员工管理 完善登录 问题&#xff1a;用户不登录&#xff0c;直接访问系统首页&#xff0c;照样可以正常访问。我们希望&#xff0c;只有登录成功后才可以访问系统中的页面&#xff0c;如果没有登录则跳转到登录页面 怎么实现&#xff1f; 用过滤器或拦截器&#xff0c;在…

kafka3.4.x配置sasl认证

背景这里kafka使用的是单独部署的zookeeper 需要走认证配置 我这里使用的zookeeper版本是3.8.3 kafka 3.4.0 kafka安装目录&#xff1a;/usr/local/bin/xx/kafka zookeeper安装目录&#xff1a;/usr/local/bin/xx/zookeeper 修改配置文件 找到kafka的/usr/local/bin/xx/kaf…

[数据结构 C++] AVL树的模拟实现

文章目录 1、AVL树1.1 AVL树的概念 2、AVL树节点的定义3、AVL树的插入和旋转3.1 左单旋左旋代码实现 3.2 右单旋右旋代码实现 3.3 右左双旋右左双旋的代码实现 3.4 左右双旋左右双旋的代码实现 3.5 insert接口实现 4、判断是否为AVL树判断AVL树的代码实现 5、AVL树的性能 问题引…

刷题第3天(简单题):LeetCode203--移除链表元素--虚拟头结点

LeetCode203:给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5]示例 2&#xff1a;输入…

面试数据库篇(mysql)- 07索引创建原则与失效及优化

索引创建原则 1). 针对于数据量较大,且查询比较频繁的表建立索引。 2). 针对于常作为查询条件(where)、排序(order by)、分组(group by)操作的字段建立索引。 3). 尽量选择区分度高的列作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高。 4). 如果是字符…

flink下载安装部署说明

下载 下载地址 flink-1.16.2下载安装包&#xff0c;flink-1.16.2-bin-scala-2.12.zip资源-CSDN文库 安装 解压目录 启动集群 ./start-cluster.sh 提交作业 ./bin/flink run examples/streaming/WordCount.jar 查看日志 停止集群 ./bin/stop-cluster.sh 开启webui vim c…