IO进程线程作业day2

这篇具有很好参考价值的文章主要介绍了IO进程线程作业day2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用fread和fwrite完成两个图片文件的拷贝

#include <myhead.h>	
#define high 541
#define wide 541
int main(int argc, const char *argv[])
{
	//以只读的方式打开图片文件1.bmp
	FILE *fp = NULL;
	if((fp = fopen("./1.bmp", "r")) == NULL)
	{
		perror("fopen error");
		return -1;
	}
	//以只写的方式打开文件work1.bmp
	FILE *fq=NULL;
	if((fq= fopen("./work1.bmp", "w")) == NULL)
	{
		perror("fopen error");
		return -1;
	}
	//先复制位图文件头和位图信息图
	unsigned char head[54];
	fread(head,1,sizeof(head),fp);
	fwrite(head,1,sizeof(head),fq);

	//将光标定位在图像像素矩阵位置
	fseek(fp,54,SEEK_SET);
	//将光标定位在图像像素矩阵位置
	fseek(fq,54,SEEK_SET);
	unsigned char str[3]={0,0,0};//定义一个容器用来储存和读取像素
	//循环取出1.bmp的像素存入work1.bmp中
	for(int i=0;i<high;i++)
	{
		for(int j=0;j<wide;j++)
		{
			fread(str,1,sizeof(str),fp);//读取像素
			fwrite(str,1,sizeof(str),fq);//写入像素
		}
	}
	fclose(fp);
	fclose(fq);
	return 0;
}

现象展示: 

IO进程线程作业day2,算法

使用read、write完成两个图片文件的拷贝

#include <myhead.h>	
#define high 653
#define wide 653
int main(int argc, const char *argv[])
{
	//以只读的方式打开图片文件2.bmp
	int fp=-1;
	if((fp=open("./2.bmp",O_RDONLY))==-1)
	{
		perror("open error");
		return -1;
	}
	//以只写的方式打开文件work2.bmp
	int fq=-1;
	if((fq=open("./work2.bmp",O_WRONLY|O_CREAT|O_TRUNC,0666))==-1)
	{
		perror("fopen error");
		return -1;
	}
	//先复制位图文件头和位图信息图
	unsigned char head[54];
	read(fp,head,sizeof(head));
	write(fq,head,sizeof(head));

	//将光标定位在图像像素矩阵位置
	lseek(fp,54,SEEK_SET);
	//将光标定位在图像像素矩阵位置
	lseek(fq,54,SEEK_SET);
	unsigned char str[3]={0,0,0};//定义一个容器用来储存和读取像素
	//循环取出2.bmp的像素存入work2.bmp中
	for(int i=0;i<high;i++)
	{
		for(int j=0;j<wide;j++)
		{
			read(fp,str,sizeof(str));//读取像素
			write(fq,str,sizeof(str));//写入像素
		}
	}
	close(fp);
	close(fq);
	return 0;
}

效果图

IO进程线程作业day2,算法

 

3> 将时间在文件中跑起来

1、17:30:41
2、17:30:42
3、17:30:43
键入ctrl+c,结束进程后
...
4、17:35:28
5、17:35:29

#include <myhead.h>	
#include <time.h>
int main(int argc, const char *argv[])
{	//打开时间文本文件
	int fp = -1;
	if((fp = open("time.txt", O_WRONLY|O_APPEND|O_CREAT)) == -1)
	{
		perror("open error");
		return -1;
	}
	char time_buf[100]="";
	int i=1;
	while (1)
	{
		time_t sysTime=time(NULL);//获取时间秒数
		struct tm *t=localtime(&sysTime);//通过秒数获取时间结构体指针
		//将时间的格式串储存到一个数组中
		snprintf(time_buf, sizeof(time_buf), "%2d、%2d:%2d:%2d\n", i++,t->tm_hour, t->tm_min, t->tm_sec);
		//写入行号和时间串
		write(fp, time_buf, strlen(time_buf));
		printf("%s\n", time_buf);
		sleep(1);
	} 
	close(fp);
	return 0;
}

效果图:

IO进程线程作业day2,算法

 思维导图

IO进程线程作业day2,算法文章来源地址https://www.toymoban.com/news/detail-827898.html

到了这里,关于IO进程线程作业day2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【驱动开发day2作业】

    head.h mychrdev.c led.c

    2024年02月15日
    浏览(41)
  • QT DAY2 作业

    1.  头文件 main.cpp mywidget.cpp 效果图 2 2.思维导图  

    2024年01月21日
    浏览(59)
  • 爬虫day2 正则表达式作业

    利用正则表达式完成下面的操作: 一、不定项选择题 能够完全匹配字符串\\\"(010)-62661617\\\"和字符串\\\"01062661617\\\"的正则表达式包括(ABD) A. r\\\"(?d{3})?-?d{8}\\\" B. r\\\"[0-9()-]+\\\" 中括号里面的字符出现任意次 C. r\\\"[0-9(-)]*d*\\\" (-) 表示(到)的所有字符 D. r\\\"[(]?d*[)-]*d*\\\" [(]就是一个(; [)-]是)- 能够

    2023年04月08日
    浏览(41)
  • 贪心算法练习day2

    1)初始化最小字母为‘Z’,确保任何字母都能与之比较 2)遍历单词,找到当前未删除字母中的最小字母 3)获取当前位置的字母  current = word.charAt(i); 4)删除最小字母之前的所有字母  word=word.substring(index+1); 5)  将最小字母添加到结果字符,更新剩余可删除字母数量 t -=

    2024年02月20日
    浏览(40)
  • IO 与进程线程

    2023年05月28日
    浏览(43)
  • 408复试day2(7大排序算法)

    7大排序算法总结: 首先排序分为内排序和外排序: 内排序是指待排序的记录放置在内存,而外排序是指排序的过程中需要对内存进行访问。其中稳定的排序有“插冒归”,即插入排序、冒泡排序、归并排序。 1.冒泡排序 算法原理: ①初始时有序区为空,即全部记录为无序

    2024年02月15日
    浏览(51)
  • 【大厂算法面试冲刺班】day2:合并两个有序链表

    将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 根据以上规律考虑本题目: 终止条件:当两个链表都为空时,表示我们对链表已合并完成。 如何递归:我们判断 l1 和 l2 头结点哪个更小,然后较小结点的 next 指针指向

    2024年01月23日
    浏览(45)
  • IO进程线程,文件IO(open),文件(stat)与目录(opendir)属性的读取

          一、文件IO 1、文件io通过系统调用来操作文件 系统调用:系统提供给用户的一组API(接口函数)         open/read/write/close/lseek... 用户空间进程访问内核的接口 把用户从底层的硬件编程中解放出来 极大的提高了系统的安全性 使用户程序具有可移植性(同一系统下) 是操作

    2024年02月11日
    浏览(35)
  • 【Java数据结构与算法】Day2-高级排序(希尔、归并、快速、计数)

    ✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:【Java数据结构与算法】 🥭本文内容:Java数据结构与算法中的比较高级的排序,希尔排序、归并排序、快速排序、计数排序

    2024年02月02日
    浏览(64)
  • 算法刷题营【Day2】:: 双指针算法应用:滑动窗口 :209. 长度最小的子数组

    本内容是笔者结合《代码随想录》总结所得,记录学习过程,分享知识! 目录: 1. 开篇例题:209. 长度最小的子数组 2. 题解参考 - - 2.1 方法一:暴力法 - - 2.2 方法二:滑动窗口 3. 方法思路点拨:滑动窗口 - - 3.1 直白解释 - - 3.2 本题思路点拨 4. 相关题集 1. 开篇例题:209. 长度

    2024年02月04日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包