linux期末复习题
17. C语言的编译过程包括那几个部分,每一部分的功能如何?
1.预处理阶段
预处理是常规编译之前预先进行的工作,故此得名。它读取C语言源文件,对其中以“#”开头的指令(伪指令)和特殊符号进行处理。主要包括文件包含、宏定义和条件编译指令。
2.编译阶段
编译程序(Compiler)对预处理之后的输出文件进行词法分析和语法分析,试图找出所有不符合语法规则的部分
3.汇编过程
汇编过程是汇编程序(Assembler)把汇编语言代码翻译成目标机器代码的过程 4.连接阶段
连接程序(Linker)要解决外部符号访问地址问题连接模式分为静态连接和动态连接
18. 在linux中常用的开发工具有哪些?各自完成什么功能?
gcc编译系统,主要功能是对程序源文件进行编译。 gdb程序调试工具,主要功能排除程序中的错误。(查找程序中的错误,诊断其准确位置,并予以改正,这就是程序调试)
程序维护工具make,make是一种自动生成和维护目标程序的工具。
19. Gnu的make的工作过程包括那几个步骤?
GNU的make的工作过程如下: ①依次读入各makefile文件; ②初始化文件中的变量;
③推导隐式规则,并分析所有规则; ④为所有的目标文件创建依赖关系链;
⑤根据依赖关系和时间数据,确定哪些目标文件要重新生成; ⑥执行相应的生成命令。
20. 程序中的错误按性质分为哪三种?
编译错误,即语法错误。 运行错误。 逻辑错误。
21. Linux系统中系统对外通过哪两种方式提供服务?各有什么特点?
系统调用和库函数 系统调用
系统调用是操作系统提供的、与用户程序之间的接口,也就是操作系统提供给程序员的接口、从感觉上系统调用类似于过程调用,都由程序代码构成,使用方式相同
两者有实质差别:过程调用只能在用户态下运行,不能进入核心态;而系统调用可以实