ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:20.63KB ,
资源ID:27228915      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27228915.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Linux期末考试试题十一.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Linux期末考试试题十一.docx

1、Linux期末考试试题十一Linux期末考试试题1下列那个命令不是现实多个环境变量的CA. setB. ExportC. PwdD. env2获取某个环境变量值使用函数AAgetenv Bputenv Csetenv Dunsetenv3文件系统保存在磁盘的BA.引导块 B.超级块C.i节点块 D.数据块4Linux文件系统的根目录的i节点号为CA. 0 B. 1 C.2 D.35文件描述符的数据类型是BA. char B.int C.double D.float6设置文件偏移量的系统调用是CA. truncate B. sync C .lseek D.create7下面那个不是lseek第三

2、个参数的取值CA.SEEK_SET B.SEEK_CUR C.SEEK_NOW D.SEEK_END8Sync系统调用的功能是AA.刷新所有缓存到磁盘 B.刷新缓存中某个文件的所有信息到磁盘C.刷新缓存中某个文件的数据到磁盘 D.刷新磁盘中某个文件的属性信息到磁盘9Fsync系统调用的功能是BA.刷新所有缓存到磁盘 B.刷新缓存中某个文件的所有信息到磁盘C.刷新缓存中某个文件的数据到磁盘 D.刷新磁盘中某个文件的属性信息到磁盘10Fdata系统调用的功能是CA.刷新所有缓存到磁盘 B.刷新缓存中某个文件的所有信息到磁盘C.刷新缓存中某个文件的数据到磁盘 D.刷新磁盘中某个文件的属性信息到磁盘1

3、1可以使用(C)系统调用获得符号链接所引用文件名称A.link B.symlink C.readlink D.softlink12获得工作路径名称的系统调用是A A.getcwd B.getpwuid C.getgrgid D.getlogin 13通过文件属性中的uid获得文件拥有者名字的系统调用是B A.getcwd B.getpwuid C.getgrgid D.getlogin4通过文件属性中的gid获得文件所属组名字的系统调用是CA.getcwd B.getpwuid C.getgrgid D.getlogin5根据文件路径来改变文件权限使用系统调用是BA.chown B.chmod

4、 C.fchmod D.fchown一、填空题1Vi的三中工作模式:插入模式、命令模式、末行模式。2Gcc生成可执行文件的四个步骤:预处理、编译、汇编、链接。3Makefile用来描述程序或工程中各个文件之间的相互联系4make。命令用来及时makefile文件中的命令5库分为静态库和共享库。6关于Linux的版本有两种不同的称呼:一种是内核版本,一种是发行版本。7命令行参数是main。函数的参数8Main函数的参数若有两个参数则第一个参数代表命令行参数个数、第二个参数代表指向各命令行参数字符串的指针数组。9Linux 中日期时间的表示方法有:算术类型、结构体类型、字符串类型。10使用time

5、函数获得的时间是算术类型、代表自1970年1月1日零时到当前时间的秒数。11把算数类型时间表示转换成结构体类型使用()函数localtime。12把算数类型时间表示转换成字符串类型使用()函数ctime。13Maketime函数把()类型时间表示转换成()类型时间表示结构体、算术。14如果一个C程序的入口表示为main(intargc,char *argv),编译该程序后的可执行程序为a.out,那么在命令“./a.outf foo”后,main中的参数argv1指向的字符串是(“-f”)。15Linux系统下表示标准输入、标准输出和标准错误输出的文件描述符(符号表示)分别为(STDIN_FI

6、LENO、STDOUT_FILENO 、STDERR_FILENO),它们的值分别为0、1、2。16数字635表示的权限使用字母的方式表示为(rwwxr-x)、使用符号方式表示为(S_IRUSR | S_IWUSR | S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH)。17系统调用open的功能是打开或创建文件。18使用open打开文件时有三个标志必须要选择其一,这三个标志是O_RDONLY、O_WRONLY、O_RDWR。19文件偏移量代表下一次读或写的位置。20将文件偏移量市值为当前偏移处之前的4个字节的维护使用lseek(fd,(4)(SEEK_CUR),)。

7、21设置打开文件标志(O_TRUNC),可以截断文件为0,使用系统调用(truncate)可以截断文件或者加长文件。22如果umask设置为022,则创建一个新文件夹(数字表示)的权限为(644)、创建一个新目录的权限为(755)。23如果umask设置为024,则创建一个新文件夹(数字表示)的权限为(642)、创建一个新目录的权限为(753)。24使用系统调用(umask)可以设置和得到文件模式的屏蔽字。25创建硬链接使用系统调用(link),创建符号链接使用系统调用(symlink)。26获得工作路径名称的系统调用是(getcwd)。27可以使用(stat或fstat或lstat)系统调用

8、显示文件属性信息。28chmod,chown,utime都可以修改文件i节点信息,其中chmod的功能是(更改文件权限)、chown的功能是(更改文件所有者和所属组)、utime的功能是(更改文件访问时间和修改时间)。29若实现将标准输出重定向到文件描述符为6对应的文件上,则应使用语句(dup2(6,1))。30系统调用(Unlink)的作用是删除目录项,这里的目录项是指(文件名和文件i节点的对应关系)。31.打开目录使用(DIR *opendir(const char *name))系统调用,关闭目录使用(intclosedir(DIR *dir))系统调用,读取目录内容使用(structd

9、irent *readdir(DIR *dir))系统调用。32chdir系统调用的功能是(改变当前目录)。33创建目录使用(intmkdir(const char *pathname, mode_t mode))系统调用、删除目录使用(intrmdir(const char *pathname))系统调用。一、简答题1关于Linux的版本有两种不同的称呼:一种是内核版本,一种是发行版本。2.简述Linux操作系统的特点3系统调用、库函数的区别和练习从用户角度观察,系统调用和库函数都以C函数形式出现,提供给用户一种功能实现的接口,需要用户输入指定的参数,调用结束得到指定的返回值。从实现者角度观

10、察,库函数是在系统调用上层的函数,库函数一般指程序员可以使用的通用函数。系统调用由两部分组成:(1)核心函数:是实现系统调用功能的代码,作为操作系统的核心驻留在内存中,是一种共享代码。运行在核心态。(2)接口函数:是提供给应用程序的API,以库函数的形式存在于Linux的lib.a中,该库中存放了所有系统调用的接口函数的目标代码,用汇编语言书写。其主要功能是把系统调用号,入口参数地址传给相应的核心函数,并使用户态下运行的应用程序陷入核心态。4完成如下命令(1)新建用户tom 和用户组student#useradd tom#passwd tom#groupadd student(2)新建文件fi

11、le#touch file(3)将文件file 改名为test,然后将test拷贝到/home#mv file test#cp test /home(4)将/home/test文件的拥有着修改为tom,将文件所属组该为student#chowntom:student /home/test1静态库和共享库的区别(1)静态库的代码在编译时就已连接到开发人员开发的应用程序中。(2)共享库只是在程序开始运行时才载入,在编译时,只是简单地指定需要使用的库函数。(3)静态库文件以.a结尾,共享库文件以.so结尾。2Makefile文件的显式规则是什么?目标文件:依赖文件列表更新目标文件使用的命令1Linu

12、x文件类型主要有哪七类?常规文件、目录文件、字符设备文件、块设备文件、管道文件、链接文件、套接字文件2简述文件、i节点、文件名、目录之间的关系每个存在磁盘上的文件都由i节点和数据块两部分组成,i节点和文件一一对应,一个i节点可以对应多个文件名,文件名和i节点的对应关系叫做文件的硬链接,文件名和i节点的对应关系保存在目录文件中。3什么是文件描述符?(1)一个非负整数,内核以此来标识一个特定进程正在操作的文件。(2)012代表三个标准的文件描述符,分别为标准输入、标准输出、标准错误输出4使用符号方式表示rwxrwxrwx权限S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWG

13、RP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH5写出open一下6种打开标志:只读、只写、读写、追加、文件不存在创建、截断为0O_RDONLY O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC6读程序,写出执行结果并解释得到该结果的原因main()int fd1,fd2;fd1=open(“/etc/passwd”,O_RDONLY);fd2=open(“/etc/passwd”,O_RDWR);printf(“fd1=%d,fd2=%dn”,fd1,fd2);close(fd1);close(fd2);结果:fd1=3 fd2=4原因:o

14、pen返回的文件描述符为最小可用的非负整数,012是三个标准的文件描述符默认已经被占用,所以第一个open的返回值为3,第二个open返回的是4。1回答stat、fstat、latat三个系统调用的区别stat根据路径获得文件元数据信息fstat根据文件描述符获得文件元数据信息前两者如果遇到符号链接文件则会一直引用至非符号链接文件lstat获得符号链接文件本身的文件元数据信息2dup和dup2的区别和联系联系:dup与dup2都用来将新文件描述符指向原来文件描述符指向的打开文件描述。区别:dup返回的新文件描述符为最小可用的文件描述符,dup2返回的新文件描述符可以通过第二个参数指定。3硬链接

15、和符号链接的区别(1)命令ln原文件硬链接文件(不能对目录创建硬链接)ln s 原文件/目录符号链接文件(2)是否新增文件:硬链接不增文件,符号链接增加文件。(3)删除原文件/目录硬链接:对应i节点链接数-1。符号链接:符号链接文件失效。(4)删除链接文件删除硬链接文件,使对应i节点的链接数-1。删除符号链接文件,对原文件/目录无任何影响(5)是否跨文件系统:硬链接不可以,符号链接可以1fork与vfork区别?(1)fork创建的子进程复制父进程的整个地址空间,vfork不创建这一副本,子进程借用父进程的地址空间,直到其调用exec族函数或终止;(2)fork创建的子进程和父进程相互独立地运

16、行,而vfork创建子进程后挂起父进程,直到子进程终止或调用exec族函数。2阅读以下代码,若execlp调用成功的话,“Done!”会打印输出吗?为什么? #includeint main()printf(“Running ps with execlpn”);execlp(“ps”,”ps”,”-af”,0);printf(“Done!n”);exit(0);不会输出“Done!”。原因:执行execlp(“ps”,”ps”,”-af”,0)调用成功后,当前进程的地址空间被新的程序ps所替代,将执行“ps -af”1试写出下列程序段的运行结果,并解释原因int x=0,int y=0;voi

17、d thread1(void)printf(“This is pthread1.the sentence 1n”);y=7;sleep(1);printf(“This is pthread1.the sentence 2n”);x=x+y;void thread2(void)printf(“This is pthread1.the sentence 1n”);x=4;sleep(1);printf(“This is pthread1.the sentence 1n”);y=8+y;void main(void)pthread_t id1,id2;pthread_create(&id1,NULL

18、,(void *)thread1,NULL);pthread_ create(&id2,NULL,(void *)thread2,NULL);pthread_join(id1,NULL);pthread_ join(id2,NULL);printf(“x=%d,y=%dn”,x,y);答案:This is pthread1.the sentense 1This is pthread2.the sentense 1This is pthread1.the sentense 2This is pthread2.the sentense 2x=11,y=15原因:(1)线程1先运行,线程2后运行。线

19、程1执行sleep(1);后阻塞,线程2继续执行,线程2执行到sleep(1);时线程2阻塞,线程1阻塞结束继续执行,线程1执行结束后线程继续执行到结束。(2)线程1和线程2共享进程的数据段,因此共享变量x,y。1进程间通信的六种方式是什么?简述他们的通信原理?(1)信号:用于通知接收进程有某种事件发生。(2)管道:连接一个进程的输出至另一个进程的输入的一种方法。(3)信号量:一个计数器,用来记录对某个资源的使用情况。(4)共享内存:允许多个进程访问同一块内存空间。(5)消息队列:消息的链表,链表中每个节点包括消息类型和正文两部分。(6)套接字:在网络上主机间进程进行通信的方式。2PIPE与F

20、IFO的区别与联系PIPE为未命名管道,FIFO为命名管道。联系:PIPE和FIFO都是单向传输,一端为读,另一端为写。区别:PIPE只能在有亲缘关系的进程中使用,如父子进程;FIFO有名字,所以只要知道该名字,无关进程之间也可以使用。3书名产生信号的几种方式?(1)用户操作。如键盘操作Ctrl-C,最终使得内核产生信号SIGINT。(2)进程执行出错。如浮点数溢出,内核也会产生信号。(3)进程执行某个系统调用。如调用kill向某个进程或进程组发送信号。4说明信号传递的过程。(1)生成(generating)。内核要更新目标进程的数据结构,表示一个新的信号已经被发送给此进程。此时,进程并没有对

21、信号做出任何响应。(2)传递(delivery)。强迫目标进程对信号做出响应。套接字类型(字节流套接字、数据报套接字、原是套接字)面向连接套接字通信过程图示 P242无连接套接字通信过程图示 P2431向文件f1中写入“hello world!”,然后再将f1中的内容读出并显示在屏幕上。(注意必要的错误判断)#include#include#includeint main()intfd;char buf113=hello world!;char buf212;intnum;fd = open( f1,O_RDWR| O_CREAT | O_TRUNC, 0644);if(fd=-1)perro

22、r(f1 not open);exit(1);num=write(fd,buf1,sizeof(buf1)-1);if(num!=(sizeof(buf1)-1)printf(write less than wantn);lseek(fd,0,SEEK_SET);num=read(fd,buf2,12);if(num!=12)printf(read less than 12n);write(1,buf2,12);close(fd);2向文件f2中写入“aabbccddee”,然后将偏移量移到绝对值偏移为4的位置处,读6个字符,并将结果显示在屏幕上#include#include #includ

23、e int main()intfd;char buf111=aabbccddee;char buf210;intnum;fd = open( f2,O_RDWR| O_CREAT | O_TRUNC, 0644);if(fd=-1)perror(f2 not open);exit(1);num=write(fd,buf1,sizeof(buf1)-1);if(num!=(sizeof(buf1)-1)printf(write less than wantn);lseek(fd,4,SEEK_SET);num=read(fd,buf2,6);if(num!=6)printf(read less

24、than 6n);write(1,buf2,6);close(fd);3向文件f3中写入“aabbccddeeffgghh”,然后将文件截短后的文件内容读出并显示在屏幕上#include #include #include int main()intfd;char buf117=aabbccddeeffgghh;char buf28;intnum;fd = open( f3,O_RDWR| O_CREAT | O_TRUNC, 0644);if(fd=-1)perror(f3 not open);exit(1);num=write(fd,buf1,sizeof(buf1)-1);if(num!

25、=(sizeof(buf1)-1)printf(write less than wantn);lseek(fd,0,SEEK_SET);ftruncate(fd,8);num=read(fd,buf2,8);if(num!=8)printf(read less than 8n);write(1,buf2,8);close(fd);4在程序中将umask改至044,创建文件f4#include#include#includeint main()intfd;umask(044);creat(f4,S_IRUSR|S_IWUSR);5实现“cat文件名”显示文件内容#includemain(intargc,char *argv)int fd;int num;char buf10;if(argc!=2)printf(miss filenamen);exit(1);fd=open(argv1,O_RDONLY);if(fd=-1)perror(error open);exit(1);while(num=read(fd,buf,10)!=0)write(1,buf,num);close(fd);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1