复习题一、填空题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 是一个从文件Makefile.am中自动生成Makefile.in文件的工具。
11、Linux的文件是个简单的字节序列。
12、对于Linux而言,所有对设备和文件的操作都使用文件描述符。
13、调用open 函数可以打开或创建一个文件。
14、设置文件的存取权限,分为属主、组用户和其他用户三类。
每类分为读、写和执行权限。
15、第一个进程都有一个目录与之相连,它称为当前工作目录,或简单地称为工作目录。
16、当打开一个流时,标准输入输出函数返回一个FILE结构的指针。
17、在三个流是在执行程序时自动打开的。
它们是标准输入、标准输出和标准错误输出。
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提供了两种类型的同步机制,它们是互斥锁和条件变量。
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的时候,会用到这里的一些信息。
A. /bootB. /binC. /devD. /etc2、Linux的工作目录用表示。
A. .B. ,C. *D. #3、利用命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成一个文件以便于网络传输是非常有用的。
A. gzipB. tarC. cdD. ls4、在Linuc下想获得一个命令的帮助,可以使用命令。
A. cdB. lsC. manD. gzip5、命令用来重新启动计算机。
A. shutdownB. haltC. rebootD. quit6、用gcc编译生成可执行文件的过程中,看起来像是一步就完成了,但实际上它要经历如下的四个步骤。
A. 预处理、编译、汇编、链接B. 预处理、汇编、编译、链接C. 链接、预处理、编译、汇编D. 编译、预处理、汇编、链接7、在Makefile文件中,使用变量的值方法是。
A. $变量名B. $(变量名)C. #变量名D. #(变量名)8、由autoconf生成的脚本通常被命名为。
A. ConfigureB. gccC. makefileD. make9、automake首先读入文件,然后生成。
A. Makefile.am、Makefile.inB. Makefile.in、Makefile.amC. Makefile.am、MakefileD. Makefile、Makefile.in10、Linux包含了一个调试程序,是一个用来调试C和C++程序的强力调试器,它使用户能在程序运行时观察程序的内部结构和内存的使用情况。
A. gccB. makeC. gdbD. autoconf11、函数是从文件中读取指定长度的数据到内存中。
A. openB. readC. writeD. create12、函数是将内存中数据写入文件。
A. openB. readC. writeD. create13、假设用户user是file1文件的拥有,file1文件的存取权限被设为-r-xr--r--,这表明user 只有的权力。
A. 读和执行B. 读和写C. 写和执行D. 只读14、函数提供了进一步管理低级文件描述符的各种手段,用它可以对已打开的文件描述符执行各种控制操作。
A. ChmodB. fcntlC. chownD. umask15、当访问一个目录文件时,同普通文件一样,需要将其打开。
打开目录文件的函数是。
A. closedirB. mkdirC. opendirD. readdir16、下面的函数不能用于打开流的是。
A. fopenB. freopenC. fdopenD. ffopen17、下列函数不能一次读入一个字符的是。
A. fgetcB. fgetcharC. getcharD. getc18、块I/O有时也称为。
A. 字符I/OB. 行I/OC. 列I/OD. 二进制I/O19、函数能够对输入输出数据进行诸如数据类型、精度、位置等格式控制。
A. 格式化I/OB. 字符I/OC. 行I/OD. 块I/O20、下列函数不属于格式输出的是。
A. printfB. fprintfC. scanfD. sprintf21、可运行进程是一个只等待资源的进程。
进程可以忽略大部分信号,但下列信号中是不忽略的。
A. 内存B、CPU C、键盘D、终端22、fork函数在父进程中的返回值是。
A、创建的子进程的进程标识号B、0C、-1D、123、在Linux中,下列不属于正常结束进程的方法是。
A、在main函数中调用returnB、调用exit函数C、调用_exit函数D、调用abort函数24、一个进程调用wait或waitpid函数,可能产生3种情况,下列不属于这3种情况的是。
A、如果所有子进程都还在运行、进程挂起B、如果恰有子进程结束,它的终止状态正等待父进程提取,立即得到该终止状态字并返回,其返回值为该子进程的进程号C、如果该进程没有子进程,立即返回,返回值为-1D、如果该进程没有子进程,立即返回,返回值为025、返回调用进程的进程标识号的系统函数是。
A、getpidB、getpgrpC、getppidD、setpid26、进程可以忽略大部分信号,但下列信号中是不能忽略的。
A、SIGHUPB、SIGINTC、SIGSTOPD、SIGQUIT27、在kill(pid,signum)函数中,pid参数表示kill函数发送信号对象的进程号或进程组号。
Pid>0表示。
A、向进程号为pid值的进程发送信号B、向与发送信号的进程有相同进程组号的进程发送信号C、向进程组号为pid绝对值的进程组发送信号D、未定义28、可以使用命令得到IPC机制中所有对象的状态。
A、lsB、cdC、killD、ipcs29、打开或创建消息队列的函数是。
A、msggetB、msginitC、msgcreateD、msg30、创建可打开信号量集的系统函数是。
A、seminitB、semC、semgetD、semcreate31、创建共享内存的函数是。
A、shminitB、seminit D、semget D、shmget32、在POSIX中,线程是用动态地创建的。
A、pthread_selfB、pthread_createC、create_pthreadD、pthread_new33、要结束一个线程,需要调用函数。