v1.0 可编辑可修改 复习题
一、填空题
1、Linux操作系统是 Unix 操作系统的一个克隆版本。
2、Linux的命令运行环境昌Shell,它是一种命令解释器,在用户和操作系统之间提供了一个交互接口。
3、Linux系统中有三个基本的文件类型:普通文件、目录文件和设备文件。
4、Linux系统通过目录将系统中所有的文件分级、分层组织在一起,形成了Linux文件系统的树型层次结构。
5、在Linux系统中建立新目录的命令是mkdir 。 6、Linux编程可分为 Shell 编程和 高级语言 编程。
7、Linux系统提供了许多文本编辑程序,比较常用的有 vi 和 emacs 等。 8、要使用make,必须编写一个叫 Makefile 的文件。
9、 autoconf 是一个用于生成可以自动配置软件源代码包以适应多种类Unix系统的shell脚本的工具。
10、 Automake 是一个从文件中自动生成文件的工具。 11、Linux的文件是个简单的 字节序列 。
12、对于Linux而言,所有对设备和文件的操作都使用 文件描述符 。 13、调用 open 函数可以打开或创建一个文件。
14、设置文件的存取权限,分为 属主 、 组用户 和 其他用户 三类。每类分为 读 、 写 和 执行 权限。
15、第一个进程都有一个目录与之相连,它称为 当前工作目录 , 或简单地称为 工作目录 。
16、当打开一个流时,标准输入输出函数返回一个 FILE结构的指针 。
17、在三个流是在执行程序时自动打开的。它们是 标准输入 、 标准输出 和 标准错误输出 。
11
v1.0 可编辑可修改 18、有3种类型的无格式I/O 函数可用来读写流,它们是 字符I/O函数 、 行I/O函数 和 块I/O函数 。
19、每一个流对象内部都保持着两个指示器:一个是 错误指示器 ,当读写文件出错时该指示器被设置;另一个为 文件结束指示器 ,当遇到文件尾时该指示器被设置。 20、流有3种不同的缓冲类型,它们是 全缓冲 、 行缓冲 和 无缓冲 。 21、进程在其生存期内可能处于三种基本状态: 运行态 、 就绪态 、 等待态 。 22、为了让Linux来管理系统中的进程,每个进程用一个 task_struct 数据结构来表示。 23、在Linux系统中,进程有两种运行模式: 用户模式 和 系统模式 。
24、创建一个新进程的唯一方法是由某个已存在的进程调用 fork 或 vfork 函数,被创建的新进程称为 子进程 ,已存在的进程称为 父进程 。
25、系统中的每个进程都有唯一的非负整数作为标识,它被称为 进程标识号 。
26、进程间通信有如下一些目的: 数据传输 、 共享数据 、 通知事件 、 资源共享 、 进程控制 .
27、Linux支持Unix System v中的三种进程间通信机制,它们是:消息队列 、 信号量 、 共享内存 。
28、在实际应用中,一个用户进程常常需要对多个信号作出处理。为了方便对多信号进行处理,在Linux系统中引入了 信号集 的概念。 29、命名管道又叫 先进先出队列 。
30、每一个System V IPC资源有2个唯一的标志与之相连,即 关键字 、 标识符 。 31、消息队列是一条由消息连接而成的 链表 、它保存在内核中,通过消息队列的 引用标识符 来访问。
32、信号量实际上是个 整数计数器 、主要用来控制多个进程对 共享资源 的访问。 33、 共享内存 机制是最快的一种进程通信机制。 34、线程可分为 用户 和 内核 态线程。
35、如果线程可在进程执行期间的任意时刻被创建,并且线程的数量事先没有必要指定,这样的线程称为 动态 线程。
36、按照POSIX标准,POSIX提供了两种类型的同步机制,它们是 互斥锁 和 条件变量 。
22
v1.0 可编辑可修改 37、互斥锁的特点是 原子性 、 唯一性 、 非繁忙等待 。 38、每个POSIX线程由一个相连的 属性对象 来表示特性。
39、TCP/IP协议参考模型共分为 四 层,它们分别是 应用层 、 传输层 、 网际协议层 、 主机联网层 。
40、利用套接字进行通信的进程采用 客户机/服务器 模式。
41、Linux支持伯克利(BSD)风格的套接字编程。它同时支持 面向连接 和 无连接类型 的套接字。
42、 数据流 套接字定义了一种面向连接的服务,实现了无差错、无重复的顺序数据传输。 数据报 套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输。
43、在计算机内存中有2种存储整数的方式,低位字节存储在这个整数的开始地址位置,是 little-endian 方式,高位字节存储在开始地址位置是 big-endian 方式。
44.管道分无名管道和有名管道,用于父进程和子进程间的通信的管道是: 无名管道 。 45.常用的socket类型有两种: 流式Socke 和数据报类型。 46.为了获得父进程的ID号,可是使用函数 getppid() 。
47.在Linux下调试c程序时,在提示符(gdb)下输入b10表示 在第10行设置断点 。 48.用GCC编译过程可以被细分为四个阶段:预处理、编译、汇编和 链接 。 49.关闭防火墙命令是: service iptables stop 。
50.Linux中文件编程可以使用两类函数: Linux操作系统文件API 和C语言库函数。
51.使用alarm函数可以设置一个时间值(闹钟时间),当设置的时间到了时,产生 SIGALRM 信号。
52.标准设备文件有:标准输入文件,标准输出文件和 标准错误输出文件 。 53.编译生成可调试可执行文件时,需加 -g 参数。
二、选择题
1、 在目录 下存放的都是系统启动时要用到的程序。在使用Lilo引导Linux的时候,
33
v1.0 可编辑可修改 会用到这里的一些信息。
A. /boot
B. /bin
C. /dev
D. /etc
2、 Linux的工作目录用 表示。
A. .
B. ,
C. *
D. #
3、 利用 命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成一个文件以便于网络传输是非常有用的。
A. gzip
B. tar
C. cd
D. ls
4、 在Linuc下想获得一个命令的帮助,可以使用 命令。
A. cd
B. ls
C. man
D. gzip
5、 命令用来重新启动计算机。
A. shutdown
B. halt
C. reboot
D. quit
6、 用gcc编译生成可执行文件的过程中,看起来像是一步就完成了,但实际上它要经历如下的四个步骤 。
A. 预处理、编译、汇编、链接 C. 链接、预处理、编译、汇编
B. 预处理、汇编、编译、链接 D. 编译、预处理、汇编、链接
7、 在Makefile文件中,使用变量的值方法是 。
A. $变量名
B. $(变量名)
C. #变量名
D. #(变量名)
8、 由autoconf生成的脚本通常被命名为 。
A. Configure
B. gcc
C. makefile
D. make
9、 automake首先读入 文件,然后生成 。
A. 、
B. 、
D. Makefile、
C. 、Makefile
10、 Linux包含了一个 调试程序, 是一个用来调试C和C++程序的强力调试器,它使用户能在程序运行时观察程序的内部结构和内存的使用情况。
A. gcc
B. make
C. gdb
D. autoconf
11、 函数是从文件中读取指定长度的数据到内存中。
A. open
B. read C. write
44
D. create
v1.0 可编辑可修改 12、 函数是将内存中数据写入文件。
A. open
B. read
C. write
D. create
13、 假设用户user是file1文件的拥有,file1文件的存取权限被设为-r-xr--r--,这表明user只有 的权力。
A. 读和执行
B. 读和写
C. 写和执行
D. 只读
14、 函数提供了进一步管理低级文件描述符的各种手段,用它可以对已打开的文件描述符执行各种控制操作。
A. Chmod
B. fcntl
C. chown
D. umask
15、 当访问一个目录文件时,同普通文件一样,需要将其打开。打开目录文件的函数是 。
A. closedir
B. mkdir
C. opendir
D. readdir
16、 下面的函数不能用于打开流的是 。
A. fopen
B. freopen
C. fdopen
D. ffopen
17、 下列函数不能一次读入一个字符的是 。
A. fgetc
B. fgetchar
C. getchar D. getc
18、 块I/O有时也称为 。
A. 字符I/O
B. 行I/O
C. 列I/O
D. 二进制I/O
19、 函数能够对输入输出数据进行诸如数据类型、精度、位置等格式控制。
A. 格式化I/O
B. 字符I/O
C. 行I/O
D. 块I/O
20、 下列函数不属于格式输出的是 。
A. printf
B. fprintf
C. scanf
D. sprintf
21、 可运行进程是一个只等待 资源的进程。进程可以忽略大部分信号,但下列信号中 是不忽略的。
A. 内存
B、CPU
C、键盘
D、终端
22、 fork函数在父进程中的返回值是 。
A、创建的子进程的进程标识号
B、0
C、-1
D、1
23、 在Linux中,下列不属于正常结束进程的方法是 。
A、在main函数中调用return
B、调用exit函数
55