库文件
库文件:预先编译好的方法的集合
静态库和共享库
libxxx.a 静态库
libxxx.so 共享库
静态库与共享库的区别:
- 静态库会包含用到的库里面的方法,共享库不包含,共享库要在运行程序的时候去动态链接
- 使用共享库编译出来的可执行程序,要比使用静态库编译出来的可执行程序要小
- 静态库如果被删掉,应用程序依然可以执行
- 共享库如果被删掉,那么使用或依赖该共享库的应用程序一律不能执行
在windows上叫做静态库和动态链接库,叫动态链接库是应该在执行应用程序的时候才去动态链接加载库
ldd 程序名字 //查看可执行程序使用了那些共享库
ldd可以查看可执行程序用到了那些共享库
创建静态库步骤
-
将所有的.c文件转换成.o文件
-
ar crv 静态库名(lib+库名) 所有的.o文件
- 调用库函数
注:静态库用ldd无法查看
创建动态库
printf
printf函数并不会直接将数据输出到屏幕,而是先放到缓冲区中,只有以下三种情况满足,才会输出到屏幕:
-
缓冲区满
-
强制刷新缓冲区 fflush
fflush(stdout) //文件
(stdout的类型的FILE* 的类型,stdin、stderr也都是FILE* 类型)
- 程序退出时,会先刷缓冲区,再结束。
main函数
一共有3个参数,他们的意义分别是
- 参数个数
- 参数内容
- 环境变量
计算机基础概论
计算机的基本组成
1.1 计算机组成五大部件
- 运算器:也叫算数逻辑单元,完成对数据的各种常规运算
- 控制器:它是整个计算机系统的控制中心,指挥计算机各部分协调工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理
- 存储器:存储程序和各种数据
- 输入设备:把信息转换为计算机能够识别的信息存储起来
- 输出设备:把计算机能识别的信息转换为人能识别的信息,进行呈现
存放速度(从慢到快):硬盘->内存->cache(缓存)->寄存器(在cpu当中)
1.2系统总线
- 数据总线
- 地址总线
- 控制总线
1.3指令
- 指令:是指示计算机执行某种操作的指令。一条指令通常由两部分构成:地址码和操作码
- 程序:由一条一条的指令构成
- 指令周期:cpu每取出并执行一条指令所需的全部时间称为指令周期
- 指令系统:计算机能执行的全部指令的集合称为计算机的指令系统
- RISC:精简指令系统计算机
- CISC:复杂指令系统计算机
- 进程与指令:高级语言 汇编助记符 机器指令
1.4 操作系统
1、操作系统: 进程管路理 内存管理 文件系统 最主要的3个部分
2、操作系统的发展史
- 串行处理
- 批处理
- 多道程序设计
- 分时系统
1.4.1 进程管理
1、进程:一个正在运行的程序
2、PCB:是进程控制块(在Linux上也叫进程描述符),是进程存在的唯一标志。用来描述进程的属性信息
实现上来说,是一个结构体(struct task_struct)
进程控制块是进程存在的唯一标志。
3、进程状态:就绪、运行、阻塞
4、并发与并行
1.4.2 内存管理
简单分页 逻辑页 物理页 页表