Linux程设复习提纲(三)
Chapter3-1(续)系统调用(掌握)和库函数(当题目指定系统调用时不能使用)系统调用和库函数都以C函数的形式出现
系统调用
Linux内核的对外接口
用户程序和内核之间唯一的接口
提供最小接口
库函数
依赖于系统调用
提供复杂功能(例如:标准I/O库)
以I/O作为样例
非缓存IO
读写操作直接调用系统调用
文件描述符
Not in ANSI C, but in POSIX.1 and XPG3
缓存IO
使用标准IO库
处理很多细节,如缓存分配以及优化长度执行IO
流是一个文件中的指针
系统IO调用文件描述符一个非负的整形(如在文件中STDIN_FILENO (0), STDOUT_FILENO (1), STDERR_FILENO (2))
一般的文件操作的步骤:打开,读/写,(lseek),关闭
基本的IO函数先给一个文件的最简单的读写样例程序
123456789 ...
Linux程设复习提纲(二)
Chapter3-0编译链接理解常用的开发工具:GCC,GDB,二进制库,make
windows环境下的编译链接图
编译链接图
编译流程
预处理(头文件)
编译(转为汇编程序)
汇编(转为目标文件.o)
链接(引入C库)
在编译链接中头文件和#include分别是预处理和编译时处理
为什么要做链接(可能是因为要引入C库中的函数?我不清楚)
库和头文件静态库和动态库的区别就在于链接这一个步骤中如何处理库
静态库.a文件,gcc ar即可使用静态链接
在连接过程中将所有的函数库和.o文件进行连接,在编译(广义)时就已经完成了,程序在运行是与函数库没有关系,移植方便,但是因为函数库较多,所以浪费空间和资源,所有涉及到的代码会合并到一个可执行文件。
动态库动态库的出现是因为静态库对于空间的浪费比较大,并且如果有软件厂商试图对静态库进行更新,需要更新整个静态库,非常耗费资源,需要 ...
Linux程设复习提纲(一)
Chapter 1Linux是怎样的一个系统Linux是一个免费的遵循GPL(GNU General Public License)原则开发的类Unix操作系统(开源的,受欢迎的,支持大多数可用平台)
Linux常用发行版RedHat,Debian,SuSe,Mandrake,Redflag
Linux安装(不考?)
Boot system from bootable media
All installation programs need to perform essentially the same steps:
Choose language, keyboard type, mouse type
Create partitions **
Setup a boot loader **
Configure network
Configure user and authenticatio ...