嵌入式Linux应用程序开发测试题_第1页
嵌入式Linux应用程序开发测试题_第2页
嵌入式Linux应用程序开发测试题_第3页
嵌入式Linux应用程序开发测试题_第4页
嵌入式Linux应用程序开发测试题_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z的正确编译流程为AA、预处理-编译-汇编-B、预处理-编译--汇编C、预处理--编译-汇编D、编译-预处理-汇编-9、如需GCC提供编译过程中所有有用的报警信息,则在编译时应参加选项BA、-wB、-WallC、-werrorD、-error10、下面哪些与GDB相关的说法是错误的BA、GDB能调试可执行文件B、GDB能调试源代码C、GDB对编译过程有要求D、GDB支持穿插调试11、在GDB调试过程中,使用下面哪项命令设置断点,其中m代表行号AA、bmB、cmC、nmD、sm12、open函数原型中的O_RDWR标志表示文件翻开方式为CA、只读方式翻开文件B、可写方式翻开文件C、读写方式翻开文件D、以添加方式翻开文件,在翻开文件的同时,文件指针指向文件末尾13、在Linu*操作系统中,串口设备的设备名一般为CA、com1B、port1C、ttyS0D、serl114、下面哪项对Linu*操作系统下fork函数的描述是错误的DA、fork函数执行一次返回两个值B、新进程称为子进程,而原进程称为父进程C、父进程返回值为子进程的进程号D、子进程返回值为父进程的进程号15、编写守护进程的第一步为AA、创立子进程,父进程退出B、在子进程中创立新会话C、改变当前目录为根目录D、关闭文件描述符16、在关于TCP/UDP的描述中,下面哪项是错误的CA、TCP数据传输实现了从一个应用程序到另一个应用程序的数据传递B、TCP对话通过三次握手来完成初始化C、UDP即用户数据报协议是一种面向连接的协议D、一个UDP应用可同时作为应用的客户或效劳器方17、常见的socket类型中不包括下面哪项CA、SOCK_STREAMB、SOCK_DGRAMC、SOCK_DTRAND、SOCK_RAW18、以下哪项不是autotools系列工具之中的一种。CA、automakeB、autoconfC、autocleanD、autoscan19、以下关于网络编程的表达中,错误的选项是B。A.一个完整的网络程序应该包含两个独立的程序,它们分别运行在客户端和效劳器端。B.当使用UDP编程时,如果函数sendto()函数成功返回,表示系统发出的数据被通讯的对方准确接收到了。C.一样条件下UDP发送数据的速度要比TCP快。D.端口号是16bit的地址码,端口号和IP地址构成一个插口〔socket〕。20、以下makefile自动变量中,表示目标文件完整名称的是A、$B、$<C、$^D、$%二、填空题1、Linu*中最常用的编译器是____编译器。答案:gcc2、gdb对____文件进展调试。答案:可执行3、工程管理器make读入的配置文件为____。答案:Makefile或makefile4、工程管理器make定义了____规则和模式规则。答案:隐含5、嵌入式软件开发所采用的编译过程为____编译。答案:穿插6、在嵌入式软件开发中,将程序实际的运行环境称为____机。答案:目标7、一个进程启动时,通常都会翻开____个文件。答案:38、在Linu*中,实现文件上锁的函数有lock和____。答案:fcntl9、Daemon进程即通常所说的____进程,是Linu*中的后台效劳进程。答案:守护10、在Linu*中使用____函数创立一个新进程。答案:fork11、fork函数调用后出现父进程与子进程,其中____的返回值为0。答案:子进程12、____函数族就提供了一个在进程中启动另一个程序执行的方法。答案:e*ec13、e*it()函数与_e*it()函数最大的区别就在于____函数在e*it系统调用之前要检查文件的翻开情况,并将文件缓冲区中的容写回文件。答案:e*it14、____函数是用于使父进程阻塞,直到一个子进程完毕或者该进程接到了一个指定的信号为止。答案:wait15、在Linu*中,所有的孤儿进程自动由____进程收养。答案:init16、Linu*中的网络编程通过____接口来进展。答案:socket17、SOCK_DGRAM为____套接字。答案:数据报三、程序填空和阅读分析题1、以下程序在父子进程之间创立了一个管道,,实现父进程向子进程写数据的功能。阅读以下程序,并写出标号所示的功能。*include<unistd.h>*include<sys/types.h>*include<errno.h>*include<stdio.h>*include<stdlib.h>intmain(){ intpipe_fd[2]; pid_tpid; charbuf_r[100]; char*p_wbuf; intr_num; memset(buf_r,0,sizeof(buf_r));(1)将数据缓冲区清0if(pipe(pipe_fd)<0)(2)创立管道 {printf("pipecreateerror\n"); return-1; }if((pid=fork())==0)〔3〕创立子进程 {printf("\n"); close(pipe_fd[1]);〔4〕关闭子进程写描述符 sleep(2);if((r_num=read(pipe_fd[0],buf_r,100))>0)(5)子进程读取管道容{printf("%dnumbersreadfromthepipeis%s\n",r_num,buf_r); } close(pipe_fd[0]);〔6〕关闭子进程读描述符 e*it(0); } elseif(pid>0)(7)父进程运行控制语句 { close(pipe_fd[0]);〔8〕关闭父进程的读描述符 if(write(pipe_fd[1],"Hello",5)!=-1)〔9〕将数据写入缓冲区printf("parentwrite1success!\n"); if(write(pipe_fd[1],"Pipe",5)!=-1) printf("parentwrite2success!\n"); close(pipe_fd[1]);〔10〕关闭父进程写描述符 sleep(3); waitpid(pid,NULL,0);阻塞方式等待子进程完毕e*it(0); }}2、阅读程序,写出程序的执行结果,并分析程序的执行过程。(假设父子进程均可在一个时间片执行完,且操作系统每次均先调度子进程。)*include<sys/types.h>*include<unistd.h>intmain()

{

pid_tresult;intcount=5;printf("beforefork,count=%d\n",count);result=fork();if(result<0)printf("forkfail\n");elseif(result>0)

{

count++;printf("Thisisparent!\n〞);

}

else{

count--;printf("Thisischild!\n");

}

printf("afterforkcount=%d\n",count);return0;

}beforefork,count=5Thisischildafterforkcount=4Thisisparent!afterforkcount=6程序的执行过程如下:程序先定义了两个变量result和count,然后输出变量count的值,得到"beforeforkcount=5"这一行输出。当执行到result=fork()时程序分叉,产生父子两个进程。系统首先调度子进程执行,直至子进程完毕。而在子进程中result为0,故走的是条件分支的最后一个分支,输出:Thisischild.afterforkcount=4子进程执行完了之后调度父进程执行,直至父进程完毕。而在父进程中result为子进程号,大于0,于是走条件分支的第二个个分支,输出:Thisisparentafterforkcount=6四、编程题1、编写一个C语言源程序e*.c,〔1〕用以在翻开当前目录下的文件“e*.t*t〞,如果没有则创立该文件,并使其具有读写属性,〔2〕编写一个makefile实现自动编译,生成可执行文件e*。voidmain(void){ intfid; fid=open(“./e*.t*t〞,O_RDWR|O_CREAT); if(fid==-1) {printf(“openorcreateerror\n〞); e*it(0);}close(fid);}objects=e*.oe*ec=e* all:$(objects) gcc–o$(e*ec)$(objects) e*.o:e*.c gcc–ce*.c clean: rm–r$(e*ec)$(objects)2、假定你在目录/root/arm下有一个C程序,它由几个单独的文件组成,而这几个文件又分别包含了其他文件,如以下列图所示:文件包含文件main.cstdio.h,table.hlist.clist.hsymbol.csymbol.htable.ctable.htable.hsymbol.h,list.h试编写makefile文件,最终的目标文件为e*1〔穿插编译器为arm-linu*-gcc〕CC=arm-linu*-gcce*1:main.olist.osymbol.otable.o$(CC)-oe*1main.olist.osymbol.otable.omain.o:main.ctable.hsymbol.hlist.h$(CC)-c-omain.omain.clist.o:list.clist.h$(CC)-c-olist.olist.csymbol.o:symbol.csymbol.h$(CC)-c-osymbol.osymbol.ctable.o:table.ctable.hsymbol

温馨提示

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

评论

0/150

提交评论