文件IO相关作业

1> 使用文件IO完成,将源文件中的所有内容进行加密(大写转小写、小写转大写)后写入目标文件中

源文件内容不变

#include<myhead.h>

int main(int argc, const char *argv[])
{
	//判断传入的是否是两个文件
	if(argc!=3)
	{
		write(2,"input file error\n",sizeof("input file error\n"));
		return -1;
	}
	//以只读的形式打开源文件
	int srcfd=open(argv[1],O_RDONLY);
	if(srcfd==-1)
	{
		perror("open srcfile error");
		return -1;
	}
	//以只写的形式打开目标文件
	int destfd=open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0664);
	if(destfd==-1)
	{
		perror("open drcfile error");
		return -1;
	}
	//定义搬运工
	char buf[128]="";
	while(1)
	{
		int src=read(srcfd,buf,sizeof(buf));
		if(src==0)
		{
			break;
		}
		//遍历buf进行大小写转换
		for(int i=0;buf[i]!='\0';i++)
		{
			if(buf[i]>='a'&&buf[i]<'z')
			{
				buf[i]=buf[i]-32;
			}
			else if(buf[i]>='A'&&buf[i]<='Z')
			{
				buf[i]=buf[i]+32;
			}
		}
		//将转换后的数据写入到新文件中
		write(destfd,buf,src);
	}
	printf("加密完成\n");

	//关闭文件
	close(srcfd);
	close(destfd);

	return 0;
}

2> 查资料了解以下概念:

1.并发和并行的区别

并发是对于单个cpu来说,只有一个进程运行,但是线程的切换时间则是减少到纳
秒数量级,多个任务不停的来回切换

并行是对于多个CPU来说,多个进程同时运行

区别;并行的“同时“是同一时刻可以多个任务在运行(处于running),并发的“同时“是经过不同
线程快速切换

2.什么是进程

是程序的一次执行过程,进程执行的任务,是一个动态的过程,有声明周期,进程是计算机资源分配的最小单位,计算机会给每个进程分配4G的虚拟内存,其中0~3G内存是进程独立的,3~4G内核空间是共享的。进程在内核空间,会有一个task_struct结构体来表示,比如包含了PCB(进程控制块),进程可以被计算机调度:时间片轮询,上下文切换

3.进程和程序的区别

进程是正在执行的任务,是一个动态的过程,而程序是可执行代码,是静态的

4.进程的状态有哪些

主状态

D   不可中断的休眠状态

R    运行态

S    可中断的睡眠状态

T    通过信号进入停止状态

t    调试的停止态

w  已经弃用状态

x  死亡态,不可见状态

z  僵尸态,子进程死了,父进程不为其收尸。

附加态

<  高优先级的进程

N 低优先级的进程

L 所在内存中的进程

s 会话组组长

l 包含多线程的进程

+前台运行的进程,一个终端只能有一个前台进程,可以有多个后台进程             

5.系统中的多个进程的调度机制都有哪些

1.先来先服务调度算法
2.短作业(进程)优先调度算法

3.高优先权优先调度算法
4.高响应比优先调度算法
5.时间片轮转法
6.多级反馈队列调度算法

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值