进程单元测试题(含答案)

上传人:人*** 文档编号:394397509 上传时间:2024-02-10 格式:DOC 页数:7 大小:29KB
返回 下载 相关 举报
进程单元测试题(含答案)_第1页
第1页 / 共7页
进程单元测试题(含答案)_第2页
第2页 / 共7页
进程单元测试题(含答案)_第3页
第3页 / 共7页
进程单元测试题(含答案)_第4页
第4页 / 共7页
进程单元测试题(含答案)_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《进程单元测试题(含答案)》由会员分享,可在线阅读,更多相关《进程单元测试题(含答案)(7页珍藏版)》请在金锄头文库上搜索。

1、一、 选择题(40分)1. 如果键盘输入为abcdef,程序如下所示,打印结果应该是( C) char buffer6; fgets(buffer, 6, stdin); printf(“%s”, buffer); A abcde B abcdef C abcdef 后出现乱码 D 段错误2。 fread()返回值的含义是 ( B )A 读取的字节数 B 读取的对象数 C 缓冲区的首地址 D 随机数3。 如果umask的值为022,创建文件时指定的权限是775,则该文件的实际权限为 ( A )/ (0775 & umask):把新建(指定的)的文件权限和umask的值取反相与的结果为实际创建的

2、文件权限. A 755 B 722 C 753 D 0224。 用open( )创建新文件时,若该文件存在则可以返回错误信息的参数是 (B )A O_CREAT B O_EXCL C O_TRUNC D O_NOCTTY5。 下列哪个函数不会改变文件读写位置( D ) A fread B fwrite C rewind D ftell6. lseek()操作成功时返回值的含义是 ( B ) A 新的文件位移量 B 文件位置指针移动的字节数 C 原先的文件位移量 D 总是07. 如果要删除一个文件需要哪种权限 ( A ) A 对文件具有写权限 B 对文件具有可执行的权限 C 对目录具有写权限 D

3、 对目录具有可执行的权限 8。 下列不是用户进程的组成部分的是( D )A 正文段 B 用户数据段 C 系统数据段 D elf段9. 以下哪种不是进程的类型 ( B ) A 批处理进程 B 管理进程 C 交互进程 D 守护进程10。 以下哪种方法无法查看进程的信息 ( C ) A ps B 查看/proc目录 C kill D top11. 可以改变正在运行的进程优先级的命令是( A) A nice B renice C kill D set Kill 9 进程号12。 以下哪种用法可以等待接收进程号为pid的子进程的退出状态 ( A ) A waitpid(pid, status, 0) B

4、 waitpid(pid, &status, WNOHANG) C waitpid(-1, &status, 0) D waitpid(-1, &status, WNOHANG)0:同wait ,代表阻塞父进程,直到指定的子进程退出WNOHANG:若指定的子进程没有结束,则waitpid不阻塞立即返回.13. 函数waitpid的返回值等于0时表示的含义是 ( B) A 等待的子进程退出 B 使用选项WNOHANG且没有子进程退出 C 调用出错 D 不确定14。 下列对无名管道描述错误的是 (C ) A 半双工的通信模式 B 有固定的读端和写端C 可以使用lseek函数D 只存在于内存中 15

5、。 下列对于有名管道描述错误的是 ( D )A 可以用于互不相关的进程间 B 通过路径名来打开有名管道C 在文件系统中可见 D 管道内容保存在磁盘上 x 内核空间中16. 下列不属于用户进程对信号的响应方式的是 ( B ) A 忽略信号 B 保存信号 C 捕捉信号 D 按缺省方式处理17。 不能被用户进程屏蔽的信号是 ( B) SIGSTOP和SIGKILL A SIGINT B SIGSTOP C SIGQUIT D SIGILL 18。 默认情况下,不会终止进程的信号是 ( D )书p87 A SIGINT B SIGKILL C SIGALRM D SIGCHLD19 下列不属于IPC对

6、象的是 ( A ) A 管道 B 共享内存 C 消息队列 D 信号灯20。 下列哪种机制只能用于线程之间的同步 ( D ) A 信号 B IPC信号灯 C POSIX有名信号量 D POSIX无名信号量二、 判断题(15分)1. open()可以用于创建普通文件和设备文件 ( F )2. lseek()并不引起IO操作 ( T )3. fgetc()的返回值是char型 F4. 文件描述符是系统随机分配的非负整数 ( F )5. 某些库函数的实现不需要系统调用 ( T )6. Linux下进程的模式分为用户态,内核态和系统态 ( F )7. 每个进程的进程号和父进程号在进程执行期间不会改变 (

7、 F )8. 子进程被创建后从fork()的下一条语句开始执行 ( T )9. 执行_exit()函数时不会清理IO缓冲 ( T )10. exec函数族可以创建一个新的进程来执行指定的程序 ( F )11. wait函数无法接收子进程退出的状态 ( F )12. 无名管道只能用于父子进程 ( T )13. 可以用signal()向指定的进程发信号 ( F )14. 消息队列可以按照消息类型读取消息 ( T )15. 共享内存是一种最为高效的进程间通信方式 ( T )三、 简答题(25分)1. 文件IO和标准IO有什么区别?(5分) 文件IO : 低级IO,没有缓冲机制。操作的对象是文件描述符

8、 标准IO : 高级IO,有缓冲机制,标准C库中实现。操作的对象是流 2. 如何判断一个文本文件包含多少行(写出代码, 5分)#include#includeunistd.h#includesys/types.hint main(int argc, const char argv) FILE fp = fopen(argv1, r”); if (fp = NULL) perror(”fopen); return 0; int line = 0; char buff1024; while(1) if(fgets(buff, sizeof(buff), fp) != NULL ) if(buffs

9、trlen(buff)1 = n) line+; if (feof(fp) break; printf(line=%dn, line); return 0; 3. 请描述进程和程序的区别 (4分) 程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念 进程是一个动态的概念,它是程序执行的过程,包括创建、调度和消亡 进程是一个独立的可调度的任务 进程是一个抽象实体。当系统在执行某个程序时,分配和释放的各种资源 进程是一个程序的一次执行的过程 进程是程序执行和资源管理的最小单位4. 指出静态库和共享库的区别(使用方法,对程序的影响) (5分)二者的不同点在于代码被载入的时刻不同.

10、静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,因此体积较大。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在,因此代码体积较小.5. 写出设置信号处理函数的原型 (3分)typedef void (*sighandler_t)(int); 6. 程序代码如下,请按执行顺序写出输出结果 (3分)int main() pid_t pid1,pid2; if(pid1=fork() = = 0) sleep(3); printf(“info1 from child process_1n”); exit(0); printf

11、(“info2 from child process_1n); else if((pid2=fork()) = = 0) sleep(1); printf(“info1 from child process_2n”); exit(0); else wait(NULL); wait(NULL); printf(“info1 from parent processn); printf(“info2 from parent process); _exit(0); info1 from child process_2 info1 from child process_1 info1 from parent process四、 问答题(20分)1. 用文件IO分别实现标准IO中的(r, r+, w, w+, a, a+),文件名由argv1传入程序. (O_RDONLY, O_WRONLY, O_RDWR, O_CREAT, O_TRUNC, O_APPEND) (6分)fopen(argv1, “r”) : open(argv1, O_RDONLY) fopen(argv1, “r+) : open(argv1, O_RDWR) fopen(argv1, “w”) : open

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号