07 2022 档案
摘要:一、孤儿进程和僵尸进程 孤儿进程:父进程先于子进程终止,子进程就沦为”孤儿进程“,会被init进程回收。 僵尸进程:子进程终止,尚未被父进程回收,则成为僵尸进程,无法用kill命令回收,这里要注意,每个进程结束后都必然会经历僵尸态,时间长短的差别而已。子进程终止时,子进程残留资源PCB存放于内核中,
阅读全文
摘要:一、exec函数族 fork创建子进程后,执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用exec函数以执行另一个程序。 exec函数族: 使进程执行某一程序。成功无返回值,失败返回 -1 其中,重点是execl函数和execlp函数 int execlp(const ch
阅读全文
摘要:进程配置有唯一的进程控制块PCB,由proc结构和usr结构组成。下面依次介绍进程相关的系统调用:1:fork()函数创建一个子进程 #include<sys/types.h> /* 提供类型pid_t的定义 */ #include<unistd.h> /* 提供函数的定义 */ pid_t for
阅读全文
摘要:1、文件存储 2、文件操作 stat函数 功能:获取文件属性,(从inode结构体中获取) stat/lstat 函数: int stat(const char *path, struct stat *buf); 参数: path: 文件路径 buf:(传出参数) 存放文件属性,inode结构体指针
阅读全文
摘要:一、文件IO 1、系统调用 操作系统实现,并提供给外部应用程序的编程接口; 完成应用程序到user区到kernel区的权级切换; write:确切地说是系统函数,是系统调用的浅封装,sys_write才是系统调用; 应用程序--》标库函数--》系统调用--》驱动--》硬件 2、打开、关闭文件 主要就
阅读全文
摘要:1、open函数 open函数: int open(char *pathname, int flags) #include <unistd.h> 参数: pathname: 欲打开的文件路径名 flags:文件打开方式: #include <fcntl.h> O_RDONLY|O_WRONLY|O_
阅读全文
摘要:makefile: 管理项目。 命名:makefile Makefile make 命令 1 个规则: 目标:依赖条件 (一个tab缩进)命令 1. 目标的时间必须晚于依赖条件的时间,否则,更新目标 2. 依赖条件如果不存在,找寻新的规则去产生依赖条件。 ALL:指定 makefile 的终极目标。
阅读全文
摘要:使用gdb之前,要求对文件进行编译时增加-g参数,加了这个参数过后生成的编译文件会大一些,这是因为增加了gdb调试内容。gdb调试工具大前提:程序是自己写的。 只能检查出逻辑错误 基础指令: -g:使用该参数编译可以执行文件,得到调试表。 gdb ./a.out list: list 1 列出源码。
阅读全文
摘要:1、动态库和静态库对比 静态库在文件中静态展开,所以有多少文件就展开多少次,非常吃内存,100M展开100次,就是1G,但是这样的好处就是静态加载的速度快 使用动态库会将动态库加载到内存,10个文件也只需要加载一次,然后这些文件用到库的时候临时去加载,速度慢一些,但是很省内存 动态库和静态库各有优劣
阅读全文
摘要:一、vi编辑器使用 1、三种工作模式以及切换 记忆,回到命令模式都是ESC,文本模式一次,末行模式两次 2、跳转和删除字符 i 进入编辑模式,光标前插入字符 a 进入编辑模式,光标后插入字符 o 进入编辑模式,光标所在行的下一行插入 I 进入编辑模式,光标所在行的行首插入 A 进入编辑模式,光标所在
阅读全文
摘要:Linux系统: “所见皆文件” Linux系统目录: bin:存放二进制可执行文件 boot:存放开机启动程序 dev:存放设备文件: 字符设备、块设备 home:存放普通用户 etc:用户信息和系统配置文件 passwd、group lib:库文件:libc.so.6 root:管理员宿主目录(
阅读全文