image.png编译好的那个可执行程序只是一个文件,不是进程,可执行文件必须要载入内存,包装成一个进程才能真正跑起来。进程是要依靠操作系统创建的,每个进程都有它的固有属性,比如进程号(PID)、进程状态、打开的文件等等,进程创建好之后,读入程序,程序才被系统执行
mm指向的是进程的虚拟内存 也就是载入资源和可执行文件的地方
files指针指向一个数组 这个数组里装着所有该进程打开的文件的指针
files 是一个文件指针数组 一般来说 一个进程会从files[0]读取输入 将输出写入files[1] 将错误信息写入files[2]
每个进程被创建时 files的前三位被填入默认值 分别指向标准输入流 标准输出流 标准错误流 我们常说的[文件描述符] 就是指这个文件指针数组的索引 程序的文件描述符默认情况下0是输入 1是输出 2是错误
[图片上传失败...(image-542d7d-1602556701678)]
读取数据的时候会去filef[0]读取,那么,输入重定向就是把files[0]执行一个文件 那么程序就会从这个文件中读取数据 而不是从键盘
输出重定向就是把files[1]指向一个文件 那么程序的输出就不会写入显示屏 而是写入这个文件中
image.png管道符就是把一个进程的输出流和一个进程的输入流连接起一条管道 数据就在其中传递
网友评论