1、使用文件IO完成,将源文件中的所有内容进行加密(大写转小写、小写转大写)后写入目标文件中,源文件内容不变
代码:
/*******************************************/
文件名:io4.c
/*******************************************/
#include<myhead.h>
int main(int argc, char const *argv[])
{
//判断是否传入了两个文件
if(argc!=3){
write(2,"input file error\n",sizeof("input file error\n"));
return -1;
}
//定义第一个文件描述符
int afp=-1;
if((afp=open(argv[1],O_RDONLY))==-1){
perror("open error");
return -1;
}
//定义第二个文件描述符
int bfp=-1;
if((bfp=open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0777))==-1){
perror("open error");
return -1;
}
//定义字符数组接收读取数据
char temp[20]="";
//定义整型接收读取字符串的长度
int size=0;
while(1){
//读取字符串
size=read(afp,temp,sizeof(temp));
//判断是否读取结束
if(size==0){
break;
}
//判断字符串中每个字符是否是英文字母并进行切换处理
for(int i=0;i<size;i++){
if(temp[i]>='a'&&temp[i]<='z'){
temp[i]=temp[i]-32;
}
else if(temp[i]>='A'&&temp[i]<='Z'){
temp[i]=temp[i]+32;
}
}
//将切换完成的数据传入第二个文件
write(bfp,temp,size);
}
printf("拷贝成功\n");
//关闭文件
close(afp);
close(bfp);
return 0;
}
结果:
2、查资料了解以下概念:
并发与并行的区别
并发:同时间间隔,依次将任务分配给处理器处理,任务不会同时进行
侧重于同一实体
一台处理器处理多个任务
并行:同时进行,将任务分配给不同的处理器单独完成,必定同时进行
侧重于不同实体
多台处理器同时处理多个任务
什么是进程
计算机中程序关于数据集合的一次运行活动
系统进行资源分配和调度的基本单位
是操作系统结构的基础
是线程的容器
是程序的实体
进程和程序的区别
程序:是一组指令的有序集合,没有运行含义
程序执行在不同的数据集上就成了不同的进程
和数据没有直接的联系,无法标识运行于不同数据集上的程序
一个程序可能没有对应的进程(没有运行),也可能有多个对应的进程
进程:是程序再某个数据集的执行,反映了程序在一定的数据集上运行的全部动态过程
进程可以用进程控制块来唯一地标识每个进程
进程具有并发性和交往性
进程的状态有哪些
运行状态:已经占用CPU,在CPU上进行
就绪状态:具备运行条件但没有CPU可用,暂时不能运行
阻塞状态(等待状态):等待某项服务完成或等待某个学号而不能运行(等待系统调用,I/O操作等)
系统中的多个进程的调度机制都有哪些
先来先服务:按照请求顺序进行调度,利于长作业
短作业优先:抢占式的调度算法,按估计运行时间最短的顺序进行调度,长作业可能处于一直等待的状态
最短剩余时间优先:按剩余时间顺序进行调度
时间片轮转:将所有就绪的进程按FCFS的原则排成队列,每次调度时把CPU时间分配给队首进程,改进程可以执行一个时间片,时间片用完时,计时器发出时钟中断,停止该进程,将其送往队末,效率与时间片大小关系很大,时间片太小会导致进程切换频繁,切换时间花费过多,实时性无法保证
优先级调度:为每个进程分配一个优先级,按优先级进行调度,随时间推移可以增加进程的优先级