1> 使用文件IO完成,将源文件中的所有内容进行加密(大写转小写、小写转大写)后写入目标文件中
源文件内容不变
代码
#include<myhead.h>
int main(int argc, const char *argv[])
{
int sfd = -1; //打开源文件
if((sfd = open("./file.txt",O_RDONLY))==-1)
{
perror("sfd open error");
return -1;
}
int dfd = -1; //打开目标文件,没有则创建
if((dfd=open("./text.txt",O_WRONLY|O_CREAT|O_TRUNC,0664))==-1)
{
perror("dfd open error");
return -1;
}
char buf[128] = ""; //定义搬运字符数组
while(1)
{
int res = read(sfd,buf,sizeof(buf)); //读取源文件字符
if(res == 0)
{
break; //读取数据为0则退出
}
int k = 0;
while(buf[k])
{
if(buf[k]>='a'&&buf[k]<='z') //如果此字符为a-z,则ascii码-32,变为大写
{
buf[k] = buf[k] - 32;
}
else if(buf[k]>='A'&&buf[k]<='Z')//如果此字符为A-Z,则ascii码+32,变为小写
{
buf[k] = buf[k] + 32;
}
k++;
}
write(dfd,buf,res); //写入目标文件
}
//关闭文件
close(sfd);
close(dfd);
return 0;
}
效果图
2> 查资料了解以下概念:
并发和并行的区别
并发,指的是多个事情,在同一时间段内同时发生了。
并行,指的是多个事情,在同一时间点上同时发生了。
并发的多个任务之间是互相抢占资源的。
并行的多个任务之间是不互相抢占资源的。
什么是进程
进程是一个具有一定独立功能的程序在一个数据集上的
一次动态执行的过程,是操作系统进行资源分配和调度
的一个独立单位,是应用程序运行的载体。
进程和程序的区别
程序是静态的,而进程是动态的。
程序是永久的,而进程是暂时存在的。
进程是程序的一次执行,而进程总是对应至少一个特定的程序。
进程的状态有哪些
就绪状态ready:进程已经分配除CPU以外的所有必要资源,只要在获得CPU就可立刻执行。
执行状态running:进程已获得CPU,其程序正在执行的状态。
阻塞状态block:正在执行的进程由于发生某事件(如IO请求、申请缓冲区失败等)暂时
无法继续执行的状态。
系统中的多个进程的调度机制都有哪些
非剥夺(非抢占)调度方式:当一个进程正在处理机上执行时,即使有某个更为重要或者
紧迫的进程进入就绪队列,仍然让正在执行的进程继续执行,知道该进程完成或发生某种
事件而进入阻塞态时,才把处理机分配给更为重要或紧迫(优先级更高)的进程。其优点
是实现简单,系统开销小,适用于大多数批处理系统,但它不能用于分时系统和大多数实
时系统。
剥夺(抢占)调度方式:当一个进程正在处理机上执行时,若有某个更为重要或紧迫的进
程(优先级更高)的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给
这个更重要的进程。这种方式对提高系统吞吐率和响应效率都有明显的好处。但抢占也要
遵循一定原则。
3> 思维导图
参考:https://blog.csdn.net/chinahyn/article/details/115492293