静态库与共享库的区别、进程、操作系统、内存
来源:互联网 发布:手机申请淘宝卖家 编辑:程序博客网 时间:2024/06/07 22:14
1. 静态库与共享库的区别
一些问题:
1)如果主机上没有libfoo.a 那么main程序能不能执行?
可以执行
2)如果foo库更新了,需要将原来的main.c重新编译生成main可执行程序
3)比使用共享库,程序要稍微大一点
2. 共享库
共享库在windows上叫做动态链接库
一些问题:
1) 如果主机没有libfoo.so,那么main程序是不能执行的。因为./main运行的时候才会去装载add方法
2) 如果更新了libfoo.so库,那么main程序
2.如果更新了libfoo.so库,那么main程序不需要重新编译,直接就可以使用新库。
3.由于库里的方法并没有包含在可执行程序中,所以,程序相对较小。
问题:如果库里有两个方法,而程序中只用到了一个方法,那么,在使用两种不同库的时候,是把两个方法都包含在内,还是只包含使用的那个方法?
4.nm main
3. 进程
操作系统管理进程,依靠PCB(进程控制块)
cpu、IO、内存由总线连接
计算机组成:cpu(运算器、控制器)、内存(存储器)、IO(输入输出设备)
总线:地址总线、数据总线、控制总线
程序由指令构成
4. 操作系统:管理软硬件资源,为用户提供一个交互的接口。
1) 串行处理 任务 == 进程
2) 批处理系统 不能换程序
3)多道程序设计 如果A程序阻塞了,可以换成B程序
这个过程也是硬件发展的结果
4)分时系统
5. 内存:分页、分段、段页式、伙伴系统 1kb = 1024Byte(字节)
Q:引入虚拟内存以后,有什么不同?
6. printf()打印情况:
1) 缓冲区放满了
2)没放满,但是强制刷新(比如加\n)
3)程序结束的时候(exit(0) _exit(0):没有刷新缓冲区)
7. 主函数三个参数
比如:int main(int argc,char *argv[],char *envp[])
{
一些问题:
1)如果主机上没有libfoo.a 那么main程序能不能执行?
可以执行
2)如果foo库更新了,需要将原来的main.c重新编译生成main可执行程序
3)比使用共享库,程序要稍微大一点
2. 共享库
共享库在windows上叫做动态链接库
一些问题:
1) 如果主机没有libfoo.so,那么main程序是不能执行的。因为./main运行的时候才会去装载add方法
2) 如果更新了libfoo.so库,那么main程序
2.如果更新了libfoo.so库,那么main程序不需要重新编译,直接就可以使用新库。
3.由于库里的方法并没有包含在可执行程序中,所以,程序相对较小。
问题:如果库里有两个方法,而程序中只用到了一个方法,那么,在使用两种不同库的时候,是把两个方法都包含在内,还是只包含使用的那个方法?
4.nm main
nm命令可以查看程序中,变量和函数的地址。那么这是什么地址?逻辑地址?物理地址?
逻辑地址
查查查:逻辑地址 线性地址 物理地址 虚拟地址3. 进程
操作系统管理进程,依靠PCB(进程控制块)
cpu、IO、内存由总线连接
计算机组成:cpu(运算器、控制器)、内存(存储器)、IO(输入输出设备)
总线:地址总线、数据总线、控制总线
程序由指令构成
4. 操作系统:管理软硬件资源,为用户提供一个交互的接口。
1) 串行处理 任务 == 进程
2) 批处理系统 不能换程序
3)多道程序设计 如果A程序阻塞了,可以换成B程序
这个过程也是硬件发展的结果
4)分时系统
5. 内存:分页、分段、段页式、伙伴系统 1kb = 1024Byte(字节)
Q:引入虚拟内存以后,有什么不同?
6. printf()打印情况:
1) 缓冲区放满了
2)没放满,但是强制刷新(比如加\n)
3)程序结束的时候(exit(0) _exit(0):没有刷新缓冲区)
7. 主函数三个参数
比如:int main(int argc,char *argv[],char *envp[])
{
// argc:传递给主函数的参数个数
//argv是一个代表参数自身的字符串数组
//envp:环境变量,由父进程传给
阅读全文
0 0
- 静态库与共享库的区别、进程、操作系统、内存
- linux C复习:静态库与共享库的区别
- 动态内存与静态内存的区别
- 【操作系统】进程与线程的区别
- 操作系统中进程与程序的区别
- 使用MFC作为共享的DLL 与 使用MFC作为静态链接库的区别
- 在共享DLL中使用MFC与在静态库中使用MFC的区别
- 在共享DLL中使用MFC与在静态库中使用MFC的区别
- 使用linux共享内存机制完成Qt与应用程序之间的通信,Qt加载制作自己的共享内存静态库!!!
- ORACLE在各操作系统信号量与共享内存的维护
- 静态库与共享库
- 静态库与共享库
- 静态库与共享库
- 静态库与共享库
- 静态库与共享库
- 静态库与共享库
- 链接共享库和链接静态库的区别
- Linux中静态库和共享库的区别
- Linux /proc 目录
- 一个数组实现两个栈
- 01-测试流程
- 日常改BUG-windows连接远程ubuntu(14.04)服务器的mysql数据库
- 2017-10-26开发总结
- 静态库与共享库的区别、进程、操作系统、内存
- 02-测试用例
- centos6.5上安装配置ftp服务
- Python数据类型二
- climbing-stairs
- java集合使用指南(一) 常用的集合 ArrayList和LinkedList 的 实用场景
- Git初级使用教程
- 03-问题单
- 04-输出文档