首页 (完整word版)04-IO进程测试题(含答案)

(完整word版)04-IO进程测试题(含答案)

举报
开通vip

(完整word版)04-IO进程测试题(含答案)一、选择题(每题2分,共40分)1.下列哪种打开文件的方式不能修改文件已有的内容(B)[A]r+[B]r[C]w+[D]a+2.以下哪种不是进程的状态(B)[A]运行态[B]锁定态[C]睡眠态[D]停止态以读写方式打开一个已存在的标准I/O流时应指定哪个mode参数(B)[A]r[B]r+[C]w+[D]a+4.fork()的返回值不可能是[A]-1(C)[B]0[C]1[D]大于10000的正整数常用来进行多任务同步的机制是(B)[...

(完整word版)04-IO进程测试题(含答案)
一、选择题(每题2分,共40分)1.下列哪种打开文件的方式不能修改文件已有的内容(B)[A]r+[B]r[C]w+[D]a+2.以下哪种不是进程的状态(B)[A]运行态[B]锁定态[C]睡眠态[D]停止态以读写方式打开一个已存在的标准I/O流时应指定哪个mode参数(B)[A]r[B]r+[C]w+[D]a+4.fork()的返回值不可能是[A]-1(C)[B]0[C]1[D]大于10000的正整数常用来进行多任务同步的机制是(B)[A]管道[B]信号量[C]信号(异步通信方式,中断机制的模拟)[D]共享内存(本身不提供同步机制,可自行添加信号量实现同步)信号量:解决进程线程之间的同步与互斥问题的一种通信机制:信号量变量和这个变量的等待队列、两个原子操作(PV).下列哪个函数无法传递进程结束时的状态(A)[A]close[B]exit[C]_exit[D]returnvoidexit(intstatus)7.以下哪种用法可以等待接收进程号为[A]waitpid(pid,&status,0)[C]waitpid(-1,&status,0)pid的子进程的退出状态(A)P59[B]waitpid(pid,&status,WNOHANG)[D]waitpid(-1,&status,WNOHANG)WNOHANG:子进程没结束,不阻塞立即返回,返回值为0。0:阻塞父进程,直到子进程退出。WhatkindofIPChasthehighestefficiency?(B)semaphoresharedmemoryfifomessagequeuesignal下列对无名管道描述错误的是(C)半双工的通信模式有固定的读端和写端可以使用lseek函数只存在于内存中10.下列对于有名管道描述错误的是(D)可以用于互不相关的进程间通过路径名来打开有名管道在文件系统中可见管道内容保存在磁盘上下列不属于用户进程对信号的响应方式的是(B)([A]忽略信号[B]保存信号1终止SIGINTCtrl+c,SIGINTQUIT[C]捕捉信号。2暂停[D]SIGSTOP。按缺省方式处理3停止SIGTSTPCtrl+z.。4忽略SIGCHILD)不能被用户进程屏蔽的信号是(B)[A]SIGINT[B]SIGSTOP/SIGKILL[C]SIGQUIT[D]SIGILL非法指令时发出下列哪个是不带缓存的(C)[A]stdin[B]stdout[C]stderr[D]都不是下列不属于IPC对象的是(A)[A]管道[B]共享内存[C]消息队列[D]信号灯IPC对象通过它的标识符来引用和访问,这个标识符是一个非负整数,它唯一的标识了一个IPC对象,这个IPC对象可以是消息队列或信号量或共享存储器中的任意一种类型如果键盘输入为abcdef,程序如下所示,打印结果应该是(A)charbuffer[6];⋯⋯fgets(buffer,6,stdin);//遇到\n或读取了size–1个字符后返回.printf(“%s”,buffer);[A]abcde[B]abcdef[C]abcdef后出现乱码[D]段错误16.用open()创建新文件时,若该文件存在则可以返回错误信息的参数是(B)[A]O_CREAT(创建新文件)[B]O_EXCL[C]O_TRUNC(删除原有数据)[D]O_NOCTTYintopen(constchar*pathname,intflags,intperms)下列不是用户进程的组成部分的是(D)[A]正文段[B]用户数据段[C]系统数据段[D]elf段进程是由进程控制块、程序段、数据段三部分组成以下哪种方法无法查看进程的信息(C)[A]ps[B]查看/proc目录[C]kill[D]topLinux系统中每一个进程都会有/proc文件系统下的与之对应的一个目录放在/proc/1目录下)。(init进程信息存默认情况下,不会终止进程的信号是(D)[A]SIGINT[B]SIGKILL[C]SIGALRM[D]SIGCHLD20.fread()返回值的含义是(B)[A]读取的字节数[B]读取的对象数[C]缓冲区的首地址[D]0size_tfread(void*ptr,size_tsize,size_tnmemb,FILE*stream);二、简答题(30分)1.请描述进程和程序的区别?(5分)进程和程序的区别程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念进程是一个动态的概念,它是程序执行的过程,包括创建、调度和消亡进程是一个独立的可调度的任务进程是一个抽象实体。当系统在执行某个程序时,分配和释放的各种资源进程是一个程序的一次执行的过程进程是程序执行和资源管理的最小单位2.指出静态库和共享库的区别(使用方法,对程序的影响)(5分)静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,因此体积较大。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在,因此代码体积较小。3.写出设置信号处理函数和用户定义的信号处理函数的原型(5分)void(*signal(intsignum,void(*handler)(int)))(int);typedefvoid(*sighandler_t)(int);sighandler_tsignal(intsignum,sighandler_thandler);voiddriver_handler(intsigno);void(*handler)(int);handler,一个指向函数的指针,该函数有一个int参数,返回void。T*signal(intsigno,P),P=void(*handler)(int);signal,一个函数,该函数有2个参数(signo,P),返回类型T的指针。void(T)(int),T=signal(intsigno,P)T,一个函数,该函数有一个int参数,返回void。4.程序代码如下,请按执行顺序写出输出结果(10分)intmain(){pid_tpid1,pid2;if((pid1=fork())==0)//子进程处理程序{sleep(3);printf(“info1fromchildprocess_1\n”);exit(0);printf(“info2fromchildprocess_1\n”);}else{if((pid2=fork())==0)//子进程2{sleep(1);printf(“info1fromchildprocess_2\n”);exit(0);}else{wait(NULL);wait(NULL);printf(“info1fromparentprocess\n”);printf(“info2fromparentprocess”);_exit(0);}}info1fromchildprocess_2info1fromchildprocess_1info1fromparentprocess5.列出任意四种进程间通信的方式(5分)传统的进程间通信方式无名管道(pipe)、有名管道(fifo)和信号(signal)SystemVIPC对象共享内存(sharememory)、消息队列(messagequeue)和信号灯(semaphore)BSD套接字(socket)三、综合题(30分)指出创建守护进程的步骤(5分)P651)创建子进程,父进程退出fork(),exit()2)在子进程中创建新会话setsid()3)改变当前目录为根目录chdir()4)重设文件权限掩码umask(0)5)关闭文件描述符close()2.请画出Linux中进程的状态切换图(5分)用文件IO分别实现标准IO中的(r,r+,w,w+,a,a+),文件名由argv[1]传入程序.(O_RDONLY,O_WRONLY,O_RDWR,O_CREAT,O_TRUNC,O_APPEND)(10分)intopen(constchar*pathname,intflags,intperms);r:open(argv[1],O_RDONLY);r+:open(argv[1],O_RDWR);w:open(argv[1],O_WRONLY|O_CREAT|O_TRUNC,0666);w+:open(argv[1],O_RDWR|O_CREAT|O_TRUNC,0666);a:open(argv[1],O_WRONLY|O_CREAT|O_APPEND,0666);a+:open(argv[1],O_RDWR|O_CREAT|O_APPEND,0666);4.编写程序实现如下功能(10分):reader.c从argv[1]所指定的文件中读取内容,依次写到管道/home/linux/myfifo中writer.c从管道/home/linux/myfifo中读取内容,写到argv[1]所指定的文件中并保存代码中可省略头文件,/home/linux/myfifo无需创建Read.cintmain(intargc,constchar*argv[]){intfd,fd_src;charbuf[32];intbytes;if(argc<2){printf("Usage%ssrc_file\n",argv[0]);return-1;}if((fd=open("/home/linux/myfifo",O_WRONLY))<0){perror("failtoopen");return-1;}if((fd_src=open(argv[1],O_RDONLY))<0){perror("failtoopen");return-1;}while((bytes=read(fd_src,buf,32))>0){write(fd,buf,bytes);}close(fd);close(fd_src);return0;}Write.cintmain(intargc,constchar*argv[]){intfd,fd_dest;charbuf[32];intbytes;if(argc<2){printf("Usage%sdest_file\n",argv[0]);return-1;}if((fd=open("/home/linux/myfifo",O_RDONLY))<0){perror("failtoopen");return-1;}if((fd_dest=open(argv[1],O_WRONLY|O_CREAT|O_TRUNC,0666))<0){perror("failtoopen");return-1;}while((bytes=read(fd,buf,32))>0){write(fd_dest,buf,bytes);}close(fd);close(fd_dest);return0;}
本文档为【(完整word版)04-IO进程测试题(含答案)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥13.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
is_083610
暂无简介~
格式:doc
大小:229KB
软件:Word
页数:0
分类:
上传时间:2021-09-25
浏览量:82