Linux操作系统 考试题库.docx
1 .1.inux书目结构中书目中的文件是i般用户可以运用的可运用的可执行文件的书目是<B)19A./sbinB./binC./usrD./lib2 .在1.inUX书目结构中1.inux的内核与引导程序所须要的文件位于(B)书目A/binB.btC./rootD./proc3 .在1.inUX书目结构中用来存放系统配置文件(D)书目A./libB./devC./procD./etcI1.inux三种特别权限中仅用于书目文件的权限是(C)22A.SUIDB.SGIDC.黏滞位D.都可以5 .1.inux三种权限中允许进入书目的权限(C)22Ar可读Bw-可写Cx-可执行D.都不是6 .卜列脚本文件最先自动执行的是(八)24A./etc/rc.localB./etc/profileC.bashrcD./.bashjogout7 .下面通配符可匹配多个随意字符的通配符是(八)29A.*B.?C.abcdeD.!a-e8 .输出重定向符号右边的文件已经存在,不会覆盖文件而是追加的定向符是(B)a.>B.>>C.2>D.&>9 .表示用户家书目的是(B)A./home(全部用户家书目的父书目,+用户名才是用户家书目)B.C.D.D.rmdir空书目10 .可删除非空书目与其子书目的吩咐是(B)A.touchC.mkdirB.rm-r11 .是强引用的符号(八)A.单引号B.反引号C.双引号D.中括号12 .可显示隐藏文件的Is吩咐形式选项是(八)A.Is-aB.Is-dC.is-hD.ls-113.可通过接受标准输入作为输出内容来创建简洁文件的吩咐是(B)42a.touchB.catC.viD.gedit4不带有编辑功能但有翻页、按行滚动、搜寻功能的吩咐是(B)43.catB.more和IeSSC.head和tailDvi15.wc吩咐可统计文件的行数、字数和字节数。在卜列格式中只显示文件的字数的是(C)51A.wcB.wc-cC.wc-WDwc-1%.可实现文件重命名的吩咐是(B)52a.cpB.mvC.inDrename17.在1.inux系统中可通过挂载将光盘、U盘或一个文件系统连接到主书目树的一个书目节点。期中光盘或光盘镜像对应的文件系统类型是(C)44a.vfatB.ext3C.iso9660Dvboxsf电下面更改文件吩咐只能更改符号连接的目标文件的权限的吩咐是(C).chownB.chgrpC.chmodD.以上都不对9.chmod吩咐的权限模式可运用字符串形式或八进制形式,当运用八进制形式时模式应由三或四位八进制构成,其中从最高到最低位依次表示为(八)每个八进制的三个二进制位从高到低分别表示为有无读、写、执行权限A.文件全部者文件所属组其他用户B.其他用户文件所属组文件全部者C文件所属组文件全部者其他用户D.其他用户文件全部者文件所属组20.chmod吩咐的权限模式可运用字符串形式或八进制形式,当运用八进制形式时模式应由三或四位八进制构成,其中每个八进制的三个二进制位从高到低分别表示为彳:无(八)A.读写执行B.写读执行C执行读写D.执行写读21.运行时不会创建子进程的方式是(C)69A.给予SheIl程序文件可执行权限,干脆运行SheIl程序(外部吩咐)B.调用吩咐说明器说明执行ShCIl程序(ShCll函数)C.运用s。UrCe吩咐执行SheIl程序(内部吩咐)D.用()将多条吩咐括起来而形成的复合吩咐执行22.对于运用(C)连接的两条吩咐,只有当左边的吩咐执行失败(退出状态为非0值)才会接着执行右边的吩咐。A.;B.&&C.IID.都不是23.Shell执行吩咐在同名时优先级别最高的是(八)A.别名B.函数C.内部吩咐D.外部吩咐24.将一个变最Stab的值清除(即成为空串)的吩咐是(D)a.$StabB.$#stabC$StabDunsetstabShell变量不须要预先定义,若对其进行数值操作,可指定变量的属性为整数,具体吩咐为DA.declare-a变Gt名B.declare-f变量名C.typeset-r变成名D.typeset-i变量名26Shell中可表示引用数级abrr中的全部非空元素的引用是(B)76A.$abrrB.$abrr*11C.$;#abrr*|D.$!#abrr(27 .在SheH变量引用操作符可实现字符串替换其中(C)用来测试假如变版Stra存在且不为空,则返回为Word,否则返回为空审78A.$stra:-wordB.$stra:=wordC.$stra:+wordD.$stra:?word28 .在SheH变最引用操作符可实现字符串替换其中(D)用来测试,假如变量Stra存在,则返回为变量Stra的值,否则输出为word,并退出当前脚本程序A.$Stra-WOrdB.$Stra=WOrdC.$;stra:+wordD.$stra:?word29 .在Shen变成引用操作符可实现模式匹配替换其中(B)用来的含义是若Pattem匹配变量Stra的头部,则删除最长匹配部分并返回剩余部分。A.$Stra#patternB.$Stra#PattCrnC.$stra%pattemD.$stra%pattern30 .为了使子进程能继承父进程中定义的变量,就必需使(D)吩咐将这些变量送入进程转出区83A.readB.setC.shiftD.export3.运用(D)形式时,即使表达式中有SheIl的特别字符时,也不必用双引号将其括起来.87A.test表达式B.表达式C.let算术表达式D.(算术表达式)32 .运用(D)形式时可以返回算术表达式的准确值A.test表达式B.Iet算术表达式C.(算术表达式)D.$(算术表达式)33 .gcc可以对编译阶段进行限制,其中(B)选项规定编译到汇编语言,不进行其他操作。107A.-EB.-SC.-cD.-o34 .gCC可以对编译阶段进行限制,其中(八)选项设定库文件的路径A.-1.pathB.-IpathC.-1libraryD.-static35 .gcc可以对编译阶段进行限制,其中(D)选项在可执行文件中包含标准调试信息,供gdb进行调试。A-WallB.-WerrorC.-wD.-g36 .在1.inUX底层文件访问中的大多数操作都是围绕文件描述符来绽开的其中(八)函数是内核向进程返回一个文件描述符为以后运用148A.open()B.read()C.write()D.closed31最终文件权限取决于(D)A.modeB.unmaskC.mode&unmaskD.mode&-unmask非掩码381.seek()中第三个参数的值为O表示(八)A.文件起先位置B.文件读写指针当前位置C.文件结束位置D.都不是39.文件属性读取函数中,依据文件名旦当文件是一个符号链接时返回是链接所指向文件的信息的函数是(八)152A.statB.IstatC.fstatD.都不是40利用文件属性读取函数获得的st_mode进行文件类型测试方法正确的是DA.对成员SjmQde同文件类型掩码进行与运算B.对成员Sjmode干脆推断C.利用带成员S1.mOde参数宏(用于文件类型推断)定义D.A和C都可以41 .下列函数中可关闭文件的函数(八)AxloseOB.dup2()C.A和B都可以D.dup()42 .下列底层文件访问函数中第一个参数是文件描述符的是(C)157A.chmodB.IchownC.fchownD.chown43 .硬能接是(B)162A.指向目标文件的指针B.指向文件的索引节点C.可跨越不同文件系统创建D.可通过SymIinko来创建44 .读取模接readlink和删除链接unlink操作对象是(C)163A,都只对硬链接有效B.都对软链接无效B.读取只对软链接有效,删除都两种都有效D.读取对两种都有效,删除只对软链接有效。4,书目文件的读取函数readdir()参数和返回值的含义OC167A,参数和返回值都指向书目文件B.参数和返回值都指向书目项C.参数指向书目文件,返回值指向书目项D.返回值指向书目文件,参数指向书目项助对磁盘文件的标准I/O操作一般是实现(八)171D,都可以A.全缓冲B.行缓冲C,不带缓冲47.当标准输入和标准输出涉与交互作用设备时,它们是(B)A.全缓冲B.行缓冲48.标准错误输出是(C)A.全缓冲B.行缓冲C.不带缓冲D.都可以C.不带缓冲D.都可以49.在函数fopcn()中文件打开模式中要求文件必需存在的模式是(八)172.r和r+B.w和w+Ca和a+D.ab和Wb50在函数f。Peno中文件打开模式中不是可读写的方式打开文件模式是(D)A.r+B.w+C.a+D.rSl.在打开函数中其中是在由指定的流上打开由路径名指定的文件,其返回值为指向文件流指针,此函数用于将一个指定的文件打开为一个预定义的标准流(C)A.openB.fopenC.freopenD.fdopen52 .以下函数中表示从某流中读取一个字符但该函数不带参数,表示从标准输入流中读字符的函数是(C)174A.getsB.getcC.getcharD.fgec53 .当到达文件尾端或出错时,字符读取函数的返回值都是EOF,为进一步确认文件是否已到文件尾,应当通过(B)函数来推断CA.(errorB.feofC.cleanerrD.perrorS4在定位函数中,可干脆将流的读写指针设置到文件的起始位置同时会将错误指示器errno清毒的函数是。rexvind182无答案A.ferrorB.feofC.clearerr174D.perrorSS下面关于ftell()函数胜利调用说法不正确的是(C)A.会清除流结束标记B.返回读写指针当前相对文件起始位置的位移城C.返回读写指针当前相对文件结束位置的位移量D.会撤销已调用UngetC()对流的影响56.格式化输出可把格式化数据输出到标准输出、指定文件与字符缓冲区。其中()函数是将格式化数据输出到指定大小的字符缓冲区。(D)183A.printfB.fprintfC.sprintfD.snprintf57格式化输入可从标准输入、指定文件与字符缓冲区读取格式化数据。其中。函数是输出到指定文件。(B)A.printfB.fprintfC.sprintfD.snprintf58 .关于临时文件不正确的是A186A.可通过tmpnam()创建C.程序结束时或关闭文件时自动删除D.调用tmpname次数有限制B.也可通过tmpfile0创建59 .下列是进程的异样终止的是(D)193A.从main中调用return返PIB.调用exitC.调用一exitD.调用abort60 .不属于非格式化标准I/O的是(C)A字符I/OB.行I/OC.列I/OD.块I/O61 .关于exit。函数不正确的是(B)194A.先清理后进入内核B.底层系统调用C有一个核型参数DJH于正常终止一个进程62 .内核使程序执行的方法的是(八)A.调用exec函数B.调用CXit/_exitC.从main返回D.收到一个系统终止信号63 .关于atexit函数正确的是(D)A.一个进程可登记超过32个函数B.函数登记的依次和询用依次相同B同一函数可登记多次,但调用一次D.在显示或隐式调用exit时则执行这些登记的终止处理程序N非初始化数据段由exec赋初值常称为(C)196A.正文段B.数据段Cbss段D.堆65 .在存储空间布局中从低地址到高地址依次分布为AA.正文段T数据段TbSS段T堆T栈B.栈,堆fbss段-数据段T正文段C.正文段堆栈数据段fbss段D.堆一正文段数据段bss段栈66 .PID为0的交换进程是(八)200A.其他全部进程的祖先进程B.全部其他用户进程的祖先进程C.其他全部内核线程的父进程D.段进程67 .调用exec可能有变更的是(D)204A.调用前后进程IDB.调用exec前后实际用户IDC.调用exec前后实际组IDD.调用exec前后有效用户ID和有效组ID68当WaitPid函数的Pid参数设置为(八)表示等待任一子进程终止。211A.pid三三-1B.pid=0C.pid>OD.pid<-169 .fork函数在父进程中的返回值是(B)206A.0B.创建的户进程的进程标识号C.-lD.170fork函数在子进程中的返回值是(八)A.OB.创建的子进程的进程标识号C.-lD.171.进程可以忽视大部分信号,但下列信号中(D)不能忽视213A.SIGBORTB.SIGI1.1.C.SIGQUITD.SIGKI1.1.72调用exec函数会将原来设置为要捕获的信号都更改为(八)214A.默认B.忽视C.另一捕获D.默认或忽视73 .可用于在不同主机的进程间通信的技术是(D)225A.管道B.共享内存C消息队列D.套接字74 .只能在同源进程间通信的技术(八)224A.一般管道B.命名管道C.消息队列D.共享内存75 .不属FSyStemVIpC通信技术的是(八)A.管道B.消息队列C信号ISD.共享内存%.建立从父进程到子进程的管道的方法(B)225A父进程关闭管道的写端,子进程关闭管道读端B.父进程关闭管道的读端,子进程关闭管道的写端C父子进程都管道的读端D.父子进程都关闭管道的写端76 .获得某个环境变值运用函数AA.getenvB.putenvC.setenvD.unsetenv77 .文件系姚保存在谶盘的BA.引导块B.超级块Cl节点块D.数据块78 .1.imlX文件系筑的根书目的i节点号为CA.OB.1C.2D.379 .文件描述符的聊类型是BA.charB.intC.doubleD.float80 .设置文件偏移的系筑调用是CA.truncateB.syncC.IseekD.create81 .下面那个不是ISeek第三个分数的取值CA.SEEK-SETB.SEEK-CURC.SEEKJ4OWD.SEEICEND82 .可以运用(C)系筑*用获得符号健按所引用文件名蒿A.linkB.ymlinkCreadIinkD.softlink83 .获得工作J»径名称的宗就词用是AA.getcwdB.getpwuidC.getgrgidD.getlogin84 .通过文件属性中的Uid装得文件现有者名字的系籍用是BA.getcwdB.getpwuidC.getgrgidD.getlogin85 .通过文件属性中的gid获得文件所属组名字的系统调用是CA.getcwdB.getpwuidC.getgrgidD.getlogin86 .依据文件路径来变更文件权限运用系筑用是BA.chwnB.chmodC.fchmodD.fchwn一、填空题1.1.irwx内核与发行版的关系:是1.inUX内核版,而是1.inUX的发行版2Shell是IinUX系统的一种吩咐行用户界面,供应了用户与操作系统进行交互的接口,本庾上是吩咐说明器,可为用户供应特性化的运用环境。3.在Shell3测试运算中文件屈性测试、属符串测试、数值测试、逻辑运算。4,特地执行整数算术运算的吩咐Iet所指表达式可执行C语宫中常见的复生、逻辑、位运算、比较运算等。5 .Vi的三中工作模式:插入模式、吩咐模式、末行模式。6 .GCC生成可执行文件的四个步骤:预处理、编译、汇编、链接。预处理是对源程序进行头文件加载和宏绽开等操作,由CPP完成;汇编是产生汇编代码,二是产生二进制的目标文件,山gcc运用as;生成的多0文件和运用到的库文件链接成为可被操作系统执行的可执行程序,运用Id工具,可运用两类库文件。7 .库分为静态库和共享库。静态库由多个.。文件组成的集合,文件成员没有特别的存在格式,运用''arw可维护和管理,库文件后缀为'a''共享库多个.o文件由编译器依据肯定特别的方式生成。多个可执行程序可共享库文件的代码段,但不共享数据。8 .吩咐行参数是main。函数的参数yMain函数的参数若有两个参数则第一个参数代表吩咐行参数个数、其次个参数代表指向各吩咐行参数字符串的指针数组。9 .1.inux中日期时间的表示方法有:算术类型、结构体类型、字示方类型。10 .假如,个C程序的入口表示为main(intargc,Char*argv),编译该程序后的可执行程序为a.out,那么在吩咐”.a.out-ffoow后,main中的参数argvl指向的字符串是0。11 .1.inUX系统下表示标准输入、标准输出和标淮错误输出的文件描述符(符号表示)分别为(STDlNFl1.ENO、STDOUTFI1.ENO、STDERRFI1.ENoN它们的值分别为0、1、2012 .数字635表示的权限运用字母的方式表示为(rw-wxr-x)、运用符号方式表示为(SRUSRISWUSR|SJWGRPSXGRP|SROTHS-IXoTH)。13 .系统调用OPCn的功能是打开或创建文件。14 .运用OPen打开文件时有三个标汜必须要选择其一,这三个标汜是ORDoN1.丫、OWRON1.Y、ORDWR015 .文件偏移及代表下一次递或宜的位置。16 .将文件偏移啦市值为当的偏移处之前的4个字节的维护运用ISeek(fd,(-4),(SEEKCUR)。17 .设置打开文件标记(O/RUNC),可以栈断文件为运用系统调用(truncate)可以截断文件或者加长文件。18 .假如UmaSk设置为022,则创建一个新文件夹(数字表示)的权限为(644)、创建一个新书目的权限为(755)。19 .假如UmaSk设置为024,则创建一个新文件夹(数字表示)的权限为(642)、创建一个新书目的权限为(753)。20 .运用系统调用(umask)可以设置和得到文件模式的屏蔽字。21 .创建硬链接运用系统调用(坦比),创建符号链接运用系统调用(SymIink).22 .获得工作路径名称的系统调用是Qetcwd)。23 .可以运用(stat或fstat或IStat)系统调用显示文件属性信息C24 .chmod,chown,Utime都可以修改文件i节点信息,其中ChmOd的功能是(更改文件权限)、ch。Wn的功能是(更改文件全部者和所属组)、Utime的功能是(更改文件访问时间和修改时间)。25 .若实现将标准输出重定向到文件描述符为6对应的文件上,则应运用语句(dup2(6,l)°26 .系统调用(UnIink)的作用是删除书H项,这里的书目项是指(文件名和文件i节点的对应关系)。27 .打开书目运用(DIR*oPendir(COnStChar*name)系统调用,关闭书目运用(intClOSedir(DlR*dir)系统调用,读取书目内容运用(StrUCtdDent*readdir(DIR*dir)系统调用。28 .Chdir系统调用的功能是(变更当前书目)。29 .创建书目运用(inimkdir(constChar"pathname,modemode)系统调用、删除书目运用(intrmdir(constChar*pathname)系统调用。30 .popen函数实现的操作:创建一个管道,fork一个子进程,然后关闭管道的不运用端,在子进程中exexc一个shell以执行一条吩咐,然后等到吩咐的终止。31 .运用kill发送信号时,发送方进程应具有相应的权限:接受和发送进程的全部者相同,发送进程的全部者是超级用户三、简答题1.系统调用、库函数的区分和练习从用户角度视察,系统调用和库函数都以C函数形式出现,供应应用户种功能实现的接口,须要用户输入指定的参数,调用结束得到指定的返PI值。从实现者角度视察,库函数是在系统调用上层的函数,库函数股指程序员可以运用的通用函数。系统谢用由两部分组成:(1)核心函数:是实现系统倜用功能的代码,作为操作系统的核心驻留在内存中,是一种共享:代码C运行在核心态。(2)接口函数:是供应应应用程序的API,以库函数的形式存在于1.inUX的Iiba中,该库中存放了全部系统调用的接口函数的目标代码,用汇编语言书写。其主要功能是把系统调用号,入口参数地址传给相应的核心函数,并运用户态卜运行的应用程序陷入核心态。4 .完成如下吩咐(1)新建用户tom和用户蛆StUdent#useraddtom#passwdtom#groupaddstudent(2)新建文件file#touchfile(3)将文件file改名为test,然后将test拷贝到/home#mv#cptest/home(4)将hometest文件的拥有者修改为tom,将文件所屈组该为StUdCnt#chowntom:studenthometest5 .静态库和共享库的区分(1)静态库的代码在编译时就已连接到开发人员开发的应用程序中。(2)共享库只是在程序起先运行时才载入,在编译时,只是简洁地指定须要运用的阵函数。(3)静态库文件以a结尾,共享库文件以so结尾。6 .1.inUX文件类型主要有哪七类?常规文件、书目文件、字符设备文件、块设备文件、管道文件、链接文件、套接字文件7 .简述文件、i节点、文件名、书目之间的关系每个存在磁盘上的文件都由i节点和数据块两部分组成,i节点和文件一一对应,一个i节点可以对应多个文件名,文件名和i节点的对应关系叫做文件的硬链接,文件名和i节点的对应关系保存在书目文件中。8 .什么是文件描述符?(1) 一个非负整数,内核以此来标识一个特定进程正在操作的文件。(2) 012代表三个标准的文件描述符,分别为标准输入、标准输出、标准错误输出9 .运用符号方式表示rwxrwxrwx权限SRUSRlSJWUSRS.IXUSRSRGRPSWGRPSJXGRPSJROTH|S-IWOTHISJXOTH10 .写出。Pen一下6种打开标记:只读、只写、读写、追加、文件不存在创建、截断为0O_RDON1.YC1.WRON1.YO_RDWRO_APPENDO_CREATO_TRUNCH.读程序,写出执行结果并说明得到该结果的缘由main()intfdl,fd2;fdl=open(*7etcpasswd,*,O_RDON1.Y);k!2=open("/etc/PaSSWd",O_RDWR);printf(Mfdl-%d,fd2-%dnM,fdl,fd2);close(fdl);close(fd2);结果:fdl=3fd2=4缘由:OPen返回的文件描述符为最小可用的非负松数,012是三个标准的文件描述符默认已经被占用,所以第一个。PCn的返回值为3,其次个OPen返回的是4。12.回答stat、fstat、Iatat三个系统调用的区分stat依据路径获得文件元数据信息fstat依据文件描述符获得文件元数据信息前两者假如遇到符号链接文件则会始终引用至非符号链接文件Istat获得符号链接文件本身的文件元数据信息12 .du和du2的区分和联系联系:dup与dup2都用来将新文件描述符指向原来文件描述符指向的打开文件描述。区分:dup返回的新文件描述符为最小可用的文件描述符,dup2返回的新文件描述符可以通过其次个参数指定。13 .硬链接和符号链接的区分(1)吩咐In原文件硬镂接文件(不能对书目创建硬镂接)In-S原文件/书目符号链接文件(2)是否新增文件:硬捱接不增文件,符号健接增加文件。(3)删除原文件/书目硬链接:对应i节点域接数符号链接:符号链接文件失效。(4)删除链接文件删除硬链接文件,使对应i节点的链接数-建删除符号链接文件,对原文件/书目无任何影响(5)是否跨文件系统:硬链接不行以,符号链接可以14. fork与vfork区分?1 1)fork创建的子进程复制父进程的整个地址空间,VfOrk不创建这一副本,子进程借用父进程的地址空间,直到其调用exec族函数或终止;2 2)fork创建的子进程和父进程相互独立地运行,而vfork创建子进程后挂起父进程,直到子进程终止或调用exec族函数。运用kill发送信号时,发送方进程应具有相应的权限:接受和发送进程的全部者相同,发送进程的全部者是超级用户。15 .阅读以下代码,若execlp调用胜利的话,“Done!”会打印输出吗?为什么?#includc<stdio.h>intmain()printf(Runningpswithexeclpn");execlp("ps","ps","-afw,0);Printf("Done!n");exit(0);不会输出“Done!”。缘由:执行execlp("ps","ps''-af”,0)调用胜利后,当前进程的地址空间被新的程序PS所替代,将执行Mps-afM16 .试写出下列程序段的运行结果,并说明缘由intx=0,inty=0;voidthread1(void)printf(,Thisispthread1.thesentence1n,);y=7;sleep(l);printf(nThisispthread1.thesentence2n");x=x+y;voidthread2(void)printf("Thisispthrcadl.thesentence1n,*);x=4;slee(l);printf(nThisispthreadl.thesentenceln");y=8+y;voidmain(void)pthread_tidl,id2;pthread_create(&id1,NU1.1.,(void*)threadl,NU1.1.);PthrCad_create&id2,NU1.1.,(void*)thread2,NU1.1.);pthreadjoin(id1,NU1.1.);PthrCad_join(id2,NU1.1.);printf(*,x=%d,y=%dnw,x,y);答案:Thisispthread1.thesentense1Thisispthread2.thesentense1Thisispthreadl.thesentense2Thisispthread2.thesentense2x=l1,y=15缘由:(1)线程1先运行,线程2后运行。线程1执行SIeeP;后堵塞,线程2接着执行,线程2执行到sleep(l);时线程2堵塞,线程1堵塞结束接着执行,线程1执行结束后线程接着执行到结束。(2)线程1和线程2共享进程的数据段,因此共享变砧X,yo17 .进程间通信的六种方式是什么?简述他们的通信原理?(1)信号:用于通知接收进程有某种事务发生。(2)管道:连接个进程的输出至另一个进程的输入的种方法。(3)信号信:一个计数器,用来记录对某个资源的运用状况0(4)共享内存:允很多个进程访问同块内存空间。(5)消息队列:消息的模表,链表中每个节.点包括消息类型和正文两部分。(6)套接字:在网络上主机间进程进行通信的方式。18 .PlPE与FIFO的区分与联系PlPE为未命名管道,FIFO为命名管道。联系:PIPE和FlFo都是单向传输,一端为读,另一端为写。区分:PlPE只能在有亲缘关系的进程中运用,如父子进程;FIFo出名字,所以只要知道该名字,无关进程之间也可以运用。19 .书名产生信号的几种方式?(1)用户操作。如键盘操作CtrI-C,最终使得内核产生信号SIGINT。(2)进程执行出错。如浮点数溢出,内核也会产生信号。(3)进程执行某个系统调用。如调用kill向某个进程或进程组发送信号。20 .说明信号传递的过程。(1)生成(generating)11内核要更新目标进程的数据结构,表示一个新的信号已经被发送给此进程。此时,进程并没有对信号做出任何响应。(2)传递(delivery)o强迫目标进程对信号做出响应。四、编程题1 .向文件”中写入tthelloworld!w,然后再将fl中的内容读出并显示在屏幕上。(留意必要的错误推断)#include<unistd.h>#includc<sysstat.h>#include<sysfcntl.h>intmain()intfd;charbufl131=f,helloworld!"charbuf212);intnum;fd=open(r,fl",O.RDWRO_CREATO.TRUNC,0644);if(fd=-l)perror(',flnotopen");cxit(l);num=write(fd,buf1,sizeof(buf1)-1);if(num!=(sizeof(buf1)-1)PrintfrWritelessthanwantn");lseek(fd,O,SEEK.SET);num=read(fd,buf2,12);if(num!=12)printf("readlessthan12n",);write(l,buf2,12);close(fd);2 .向文件f2中写入“aabbccddee”,然后将偏移量移到有定值偏移为4的位置处,读6个字符,并将结果显示在屏幕上#includc<unistd.h>#include<sysstat.h>#includc<sysfcntl.h>intmain()(intfd;charbufll1)=faabbccddee");charbu10;intnum;fd=open(',f2",O-RDWRO.CREATO.TRUNC,0644);if(fd=-l)perror("f2notopen");exit(l);num=write(fd,buf1,sizeof(buf1)-1);if(num!=(sizeof(bufl)-l)printf("writelessthanwantn");lseek(fd,4,SEEK_SET);num=read(fd,buf2,6);if(num!=6)printf("readlessthan6n");write(l,buf2,6);close(fd);3 .向文件f3中写入“aabbccddeeffgghh”,然后将文件截短后的文件内容读出并显示在屏幕上#include<unistd.h>#includc<sysstat.h>#include<sysfcntl.h>intmain()intfd;charbufl17="aabbccddeeffgghh,;charbuf28;intnum;fd=open("f3",O_RDWR|O_CREATO.TRUNC,0644);if(fd=-l)perror("f3notopen");exit(l);num=write(fd,buf1,sizeof(bufl)-l);if(num!=(sizeof(bufl)-l)printf("writelessthanwantn");lseek(fd,OfSEEK-SET);ftruncate(fd,8);num=read(fd,buf2,8);if(num!=8)printf("readlessthan8n");write(l,buf2,8);close(fd);4 .实现“cat文件名”显示文件内容#include<fcntl.h>main(intargc,char*argv11)(intfd;intnum;charbuf10;if(argc!=2)(printf("missn");exit(l);to=open(argv,O_WRON1.YIO_CREATO_TRUNC,0644);num=read(from,buf,10);while(num!=O)write(to,buf,num);num=read(from,buf,10);closc(from);close(to);6 .编写程序pro3.c,将字符串"helloworld”通过输出重定向方式写入文件fl中#include<stdio.h>#include<unistd.h>#include<fcntl.h>#include<sysstat.h>#include<systypes.h>main()intfd;if(fd=ope11(,"f1",O-WRON1.YO.CREAT,0644)=-1)perror("openfail");if(dup2(fd,1)=-1)perror("Redirectfailed");printf("Helloworldn");close(fd);7 .运用fork创建进程,在子进程中打印"Iamthechild''和子进程pid,在父进程中打印“Iamthefather*和父进程pid#includc<systypes.h>#include<stdlib.h>#includc<stdio.h>intmain()pid_tpid;pid=fork();if(pid<0)perror("fork");exit(l);elseif(pid=0)printf("Iamthechildn'j;elseprintfC'Iamthefathern");cxit(O);8 .创建子进程,在子进程中执行"ps-Aw吩咐,父进程等待子进程结束后打印“childover”与所处理的子进程进程号