《Linux操作系统(下)》复习题

上传人:wen****ng 文档编号:136718135 上传时间:2022-08-17 格式:DOC 页数:10 大小:199.50KB
收藏 版权申诉 举报 下载
《Linux操作系统(下)》复习题_第1页
第1页 / 共10页
《Linux操作系统(下)》复习题_第2页
第2页 / 共10页
《Linux操作系统(下)》复习题_第3页
第3页 / 共10页
资源描述:

《《Linux操作系统(下)》复习题》由会员分享,可在线阅读,更多相关《《Linux操作系统(下)》复习题(10页珍藏版)》请在装配图网上搜索。

1、一、选择题。 1、使用gdb工具调试C语言程序过程中,如果出现”(gdb)p n”/b n /info n /r /c /s /n/ ,其功能是:A 在第n行设置断点 B. 打印变量n的值 C. 从第n行开始运行 D.开始单步调试从n行开始E. 在第N行设置断点 F. 进入单步调试G进入下一步 H. 开始运行2、LINUX系统中权限掩码的默认值是/如何更改系统掩码/在系统默认的权限上加上T位后的掩码的值为: A. 00222 B. 0022 C.020 D. 100 E. 1222 3、提取头文件内容和处理预定义/检查程序的语法错误的功能/把源代码编译成汇编语言绡在程序/把程序编译成二进制模块

2、/把二进制模块组装成可执行程序的功能呢个是编译程序过程的步骤是()。 A. 预处理B.编译汇编链接3、能实现加载动态库文件libsunq.so的正确命令是: A. gcc -1.5.c o 1-5 L /root/lib lsunq B. gcc -1.5.c o 1-5 I /root/lib lsunq C. gcc -1.5.c o 1-5 L /root/lib -I libsung.so D. gcc -1.5.c o 1-5 I /root/lib L libsung.so4、在linux系统的目录结构中,( )用于存放系统共享库文件/系统头文件。 A. /dev B. /sbin

3、 C. /usr/include D. /lib E./usr/lib、在Linux系统中的环境变量中,PATH/PWD/HOME/USER/HISTORY是( ) A. 系统根目录 B.保存历史记录的条数 C. 用户使用的shell D.系统默认路径、命令:passwd d david 的功能是: A. 删除用户david B. 锁定用户口令 C. 删除用户口令 D. 解锁用户口令、命令: unmae a 的功能是: A.显示系统所有信息 B.显示主机信息 C. 显示硬件平台类型 D. 显示内核版本、对于文件vmwareTools.tar.bz2的文件需要强制解压到系统新建目录/work下,

4、试问其解压命令是:A. tar jvxf vmwareTools.tar.gz C /work B. tar zvxf vmwareTools.tar.gz C /workC. tar zvxf vmwareTools.tar.gz c /work D.tar jzvxf vmwareTools.tar.gz C /work、在系统中使用gcc编译C语言源代码时,使用参数()用于指明静态库/动态库/头文件的位置?10、在linux系统下,某文件的权限为“srwsrr-T”(lrwsrrT/ -rwsrrT/ prwsrrT/ drwsrr-T),该文件的类型是( )。 A.普通文件 B.目录

5、C. 套接字文件 D.链接文件11、在执行某程序中有一个语句:fputs(string, file1)/fgets(string ,file1)/fprintf(“thsis is a %s book! ”,sting,file1)/ printf(“thsis is a %s book! ”,sting);其功能是: A.往file1文件中写一个字符string B. 往file1文件中写一个字符串string C. 从文件file1中读出一个字符给string D. 从文件file1中读出一个字符串给string12、在编写守护进程的第一步就是创建子进程、父进程退出,父进程退出后,收养子进

6、程的进程PID号为: A0 B. 1 C. 2 D.3 13、在编译一个程序过程中,经历的正确顺序是( )。 A.预处理、编译、汇编和链接 B . 预处理、汇编、编译和链接 C.编译、预处理、汇编和链接 D. 编译、链接和汇编。 14、下列协议中,是面向连接的协议/无连接/数据报控制协议/确保数据可靠传输的协议是(): A.ip协议 B.tcp协议 C. UDP协议 D.ICMP E. IGMP F. https15、在输入输出系统中,下列函数调用表示将读写位置置于文件开始的位置是:( ) 。 A.fseek(FILE *stream,0, SEEK_SET) B.fseek(FILE *st

7、ream,0, SEEK_END) C. fseek(FILE *stream,0, SEEK_CUR) D. 以上三个选项都是错的。 16、函数调用:syslink(“etc/passwd”,”4-15link”)/link(“etc/passwd”,”4-15link”)/chmod(“(“etc/passwd”,S_IRUSR|S_IWUSR|S_IROTH)/umask(6220) 的功能是:() A.为文件4-15link创建软连接etc/passwd B. 为文件etc/passwd创建软连接4-15link C. 为文件4-15link创建硬链接etc/passwd D. 为文件

8、etc/passwd创建硬连接4-15link E. 更改制定文件的权限为所有者可读可写其他人可读 F. 修改系统的权限掩码。 17、LINUX系统中,进程除PCB外所有资源都已经释放的状态是:() A.不可中断睡眠 B.就绪态 C. 挂起状态 D.僵尸状态18、函数raise( SIGSTOP/SISILL/)/kill(result,SIGKILL)/kill(result,SIPSTOP)/ signal(SIGINT,fun_ctr_c)功能是( ) A.给子进程发送要杀死子进程的信号 B.给父进程发送命令要杀死父进程的命令 C.给进程自己发送自杀的信号 D.给进程自己发送挂起的信号

9、E. 给result代表的进程发送挂起信号 F. 给result代表进程发送杀死信号 G. 定义SIGINT信号定义处理函数为fun_ctr_c 19、在exec函数家族中名字中的第六个字母为()时表示要以命令的方式查找指定文件/给出运行环境/以向量方式给出输入参数。20、makefile文件常见的自动变量中,表示“所有依赖文件”/“第一个依赖文件”/“目标文件的完整名字”/“不含扩展名的目标文件名称”的是: A $ B.$+ C.$* D. $%二、填空题、语句:nm o /lib/*.so|grep sin 或者#include “stdio.h“或者ps ef|grep ./6-3 sy

10、stem(“”) 的功能是_。2、makefile文件的变量分为预定义变量、自定义变量和自动变量。3、创建makefile文件时,第一行/第二行应该以_开头。4、在Linux系统中文件I/O共分两类,一是带缓冲的文件I/O操作,也就是标准I/O操作,另外一类是不带缓冲的I/O操作,也就是满足posix标准。5、sszie_t write(int fd,void *buf ,size_count)函数的fd/buf/count的意义是_。6、fscanf(myfile,%d,&x)/fgets(s,size,fp)/fput(s,fp);是某程序中的一条语句,其主要功能是_。7、if(fork(

11、)=0) If (execl(“/bin/ps”,”ps”,”-ef”,NULL)0)printf(ececl errorn);其中调用函数execl(),其中参数“/bin/ps”表示_。7、常用的linux的编译工具/调试工具/搜索工具是_。8、在Linux系统中,函数在Linux系统中,函数ftok(“.”,a)/msgget(key,IPC_CREAT|0666)/msgrcv(qid,512,0,0)功能是_。9、使用函数fork()创建子进程后,这对父子进程的唯一区别是_。10、void (*signal(int signum,void (*hander)(int)(int ),其

12、返回值的类型/hander/sigmum是_。三、程序阅读题1、#include #include #include #include int main(void)pid_t result;result = fork();if(result = -1)printf(Fork errorn);else if (result = 0)printf(The return value is %dnIn child process!nMy PID is %dn,result,getpid();elseprintf(The return value is %dnIn father process!nMy

13、PID is %dn,result,getpid();return result;2、 #include #include #include void fun_ctrl_c(); int main () (void) signal(SIGINT,fun_ctrl_c); printf(主程序:程序进入一个无限循环!n);while(1)printf(这是一个无限循环(要退出请按Ctrl+C键)!n);sleep(3);exit(0);void fun_ctrl_c() printf(t你按了 Ctrl+C 哦:)n);printf(t信号处理函数:有什么要处理,在处理函数中编程!n);prin

14、tf(t此例不处理,重新恢复SIGINT信号的系统默认处理。n);(void) signal(SIGINT,SIG_DFL); 3. #include#include#include#includeint main()mode_t new_umask,old_umask;new_umask=0666;old_umask=umask(new_umask);printf(系统原来的权限掩码是:%on,old_umask);printf(系统新的权限掩码是:%on,new_umask);system(touch liu1);printf(创建了文件liu1n);new_umask=0444;old_

15、umask=umask(new_umask);printf(系统原来的权限掩码是:%on,old_umask);printf(系统新的权限掩码是:%on,new_umask);system(touch liu2);printf(创建了文件liu2n);system(ls liu1 liu2 -l);return 0;4、#include /*文件预处理,包含标准输入输出库*/#include /*文件预处理,包含fork函数库*/#include /*文件预处理,包含fork、wait、waitpid函数库*/#include /*文件预处理,包含wait、waitpid函数库*/int ma

16、in () /*C程序的主函数,开始入口*/pid_t pid,wpid;int status,i;pid=fork(); /*调用fork函数复制进程,返回值存在变量pid中*/if(pid=0)printf(这是子进程,进程号(pid)是:%dn,getpid();sleep(5); /*子进程等待5秒钟*/exit(6);elseprintf(这是父进程,正在等待子进程n);wpid=wait(&status); /*父进程调用wait函数,消除僵尸进程*/i=WEXITSTATUS(status); /*通过整形指针status,取得子进程退出时的状态*/printf(等待的进程的进程

17、号(pid)是:%d ,结束状态:%dn,wpid,i);5、#include#include #include #include #include #include #include #include #define SERVPORT 3333#define MAXDATASIZE 100 /*每次最大数据传输量 */int main(int argc, char *argv)int sockfd, recvbytes;char bufMAXDATASIZE;struct hostent *host;struct sockaddr_in serv_addr;if (argc h_addr);

18、bzero(&(serv_addr.sin_zero),8);if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr) = -1) perror(connect error!);exit(1);if (recvbytes=recv(sockfd, buf, MAXDATASIZE, 0) =-1) perror(connect 出错!);exit(1);bufrecvbytes = 0;printf(收到: %s,buf);close(sockfd);6、#include#include#include

19、#include #include #include #include #include #define SERVPORT 3333 /*服务器监听端口号 */#define BACKLOG 10 /* 最大同时连接请求数 */int main()int sockfd,client_fd; /*sock_fd:监听socket;client_fd:数据传输socket */struct sockaddr_in my_addr; /* 本机地址信息 */struct sockaddr_in remote_addr; /* 客户端地址信息 */int sin_size;if (sockfd = s

20、ocket(AF_INET, SOCK_STREAM, 0) = -1)perror(socket 创建失败!); exit(1);my_addr.sin_family=AF_INET;my_addr.sin_port=htons(SERVPORT); /* htons()把16位值从主机字节序转换成网络字节序*/my_addr.sin_addr.s_addr = INADDR_ANY;bzero(&(my_addr.sin_zero),8); /*保持与struct sockaddr同样大小 */if (bind(sockfd, (struct sockaddr *)&my_addr, si

21、zeof(struct sockaddr) = -1)perror(bind 出错!);exit(1);if (listen(sockfd, BACKLOG) = -1) perror(listen 出错!);exit(1);while(1) sin_size = sizeof(struct sockaddr_in);if (client_fd = accept(sockfd, (struct sockaddr *)&remote_addr, &sin_size) = -1) perror(accept error);continue;printf(收到一个连接来自: %sn, inet_nt

22、oa(remote_addr.sin_addr);if (!fork() /* 子进程代码段 */if (send(client_fd, 连接上了 n, 26, 0) = -1)perror(send 出错!);close(client_fd);exit(0);close(client_fd);四、简答题。1、举例说明如何通过命令获知某个进程是守护进程? 1、给出基于TCP协议的网络程序流程图2、给出基于UDP协议的网络程序的流程图2、在include语句中,“”和“”有何区别?2、请给出常见的进程间通讯方式和特点。3、在程序编译过程中链接的功能是什么?3、请给出LINUX系统下守护进程创建的主要步骤和相关C语言语句。4、一个项目中,文件的依赖关系如下所示,请写出该项目的makefile文件的内容。A.cB.cD.cF.c 5、举例说明一个完整套接字的结构。五、程序设计1、设计一个程序,要求打开文件“pass”,如果没有这个文件,新建此文件;读取系统文件“/etc/passwd”,把文件中的内容都写入“pass”文件。2已知一个程序的流程图如下,请给出它的源代码:3. 已知一个程序的流程图如下,请给出服务器端和客户端的代码4、设计一个程序,要求程序主体运行时,即使用户按下的中断键(Ctrl+C),也不能影响正在运行的程序,等程序主体运行完毕后才进入自定义信号处理函数。5、

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!