1> 使用文件IO完成,将源文件中的所有内容进行加密(大写转小写、小写转大写)后写入目标文件中,源文件内容不变
#include <myhead.h>
int main(int argc,const char *argv[])
{
int fd1 = -1,fd2 = -1;
if((fd1 = open("./aa.txt",O_RDONLY))==-1) //以读的方式打开文件
{
perror("open error");
return -1;
}
if((fd2 = open("./bb.txt",O_WRONLY|O_CREAT|O_TRUNC,0664))==-1) //以写的方式打开文件
{
perror("open error");
return -1;
}
char buf=0; //定义一个接收的容器
char *p=&buf;
while(1)
{
int n=read(fd1,p,sizeof(buf)); //读取一个字符
if(n==0) //n=0,说明文件已经读完
{
break;
}
if(*p>='a'&&*p<='z') //判断是否为小写字母
{
*p=*p-32;
}
else if(*p>='A'&&*p<='Z') //判断是否为大写字母
{
*p=*p+32;
}
write(fd2,p,sizeof(buf)); //将转化后的字符写入bb.txt中
}
close(fd1);
close(fd2);
return 0;
}
2> 查资料了解以下概念:
并发和并行的区别
并发 (Concurrency):
- 指的是在同一时间段内,多个任务在逻辑上“同时”进行,可以是通过时间片轮转、协作式多任务等方式实现。并发是指在同一时间内有多个任务在进行,但这些任务可能并不是在物理上同时执行的。
并行 (Parallelism):
- 指的是在物理上同时执行多个任务,通常需要多核处理器或多个处理器来实现。并行的任务是同时在多个处理单元上运行,能够加快处理速度。
什么是进程
进程:进程就是程序的一次执行过程
进程是正在执行的任务,是一个动态的过程,有声明周期,创建、就绪、休眠、运行、死亡等多种状态
进程是计算机资源分配的最小单位,计算机会给每个进程分配4G的虚拟内存,其中0--3G内存是进程独立的,3--4G内核空间是共享的
进程在内核空间,会有一个task_struct结构体来表示,比如包含了PCB(进程控制块)
进程可以被计算机调度:时间片轮询、上下文切换
进程和程序的区别
进程:进程就是程序的一次执行过程
进程是正在执行的任务,是一个动态的过程,有声明周期,创建、就绪、休眠、运行、死亡等多种状态
进程是计算机资源分配的最小单位,计算机会给每个进程分配4G的虚拟内存,其中0--3G内存是进程独立的,3--4G内核空间是共享的
进程在内核空间,会有一个task_struct结构体来表示,比如包含了PCB(进程控制块)
进程可以被计算机调度:时间片轮询、上下文切换
程序:可执行程序代码,是静态的
进程的状态有哪些
D uninterruptible sleep (usually IO):不可中断的休眠态
R running or runnable (on run queue):运行态
S interruptible sleep (waiting for an event to complete):可中断的睡眠态
T stopped by job control signal:通过信号进入停止状态
t stopped by debugger during the tracing:调试时的停止态
W paging (not valid since the 2.6.xx kernel):已经弃用状态
X dead (should never be seen):死亡态,不可见状态
Z defunct ("zombie") process, terminated but not reaped by its //僵尸态,子进程死了,父进程不为其收尸
< high-priority (not nice to other users) //高优先级的进程
N low-priority (nice to other users) //低优先级的进程
L has pages locked into memory (for real-time and custom IO):所在内存中的进程
s is a session leader:会话组组长
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do):包含多线程的进程
+ is in the foreground process group :前台运行的进程,一个终端只能有一个前台进程,可以有多个后台进程
系统中的多个进程的调度机制都有哪些
先来先服务 短作业优先 优先级调度 时间片轮转 多级队列调度 多级反馈队列 轮询调度