好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

嵌入式操作系统应用开发复习题及答案归纳.pdf

10页
  • 卖家[上传人]:飞翔****08
  • 文档编号:254633861
  • 上传时间:2022-02-15
  • 文档格式:PDF
  • 文档大小:319.58KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、简述 Linux 操作系统具有的特点答:开放的源代码,良好的兼容性,完备的帮助手册页,优秀的网络支持支持多用户多任务多处理器支持多种文件系统,独特的挂载方式确保数据的安全性将应用程序的核心实现为库,可重用性良好采用模块化分层的程序设计方法,可靠易维护将设备等一切都看做是文件,提供统一的文件操作接口对设备等进行操作2、解释 POSIX 答: POSIX 表示可移植操作系统接口,可以提高UNIX 环境下应用程序的可移植性POSIX 标准定义了标准的 API ,只要是符合这一标准的应用程序,就能够在多种操作系统中运行3、解释通用公共许可证GPL 答: GPL 保证软件对所有用户来说是自由的遵循GPL 的软件提供给用户时必须提供源码,一旦用户得到遵循 GPL 的软件,就能够对其任意地改写,修改之后如果要提供给其他人也必须遵循GPL,并开放源码,允许被修改4、Linux 系统下,常用的帮助文件有哪些?答: 1、man 手册 2、info 手册3、How-To 5、Linux 系统下进行C 程序开发的主要两个标准答: 1 、ANSI C 标准 2、POSIX 标准6、一般 Linux 系统调用函数,如果执行成功将返回什么值?如果执行失败将返回什么值?并对哪个系统全局变量进行赋值,以指示具体的错误情况。

      答:成功时返回为0,不成功时一般返回-1,也可能返回一些非0 值失败时将会在全局变量errno 中赋值指示错误类型7、画出 Linux 函数库调用和系统调用的示意图,简单说明系统调用(API )函数的作用答:API 是操作系统和用户程序之间的接口,应用程序通过API 与操作系统进行通信,使用操作系统提供的服务 API 同时保证了操作系统数据和程序的安全性因此, API 提供给用户安全地使用操作系统提供的服务应用程序库函数系统调用内核硬件设备8、简单说明在Linux 程序开发过程中,利用GCC 工具将 C 语言程序编译成一个可执行程序文件的四个步骤答: 1、预处理2、编译3、汇编4、连接9、解释 gcc工具的 o、c、I、L、l 等 5 个参数的功能作用答:o:把文件输出到output_filename, c:只编译,不连接I: L: 在库文件的搜索路径列表中添加dirname 目录 l: -o file 指定输出文件为file -c 预处理,编译,汇编源文件,但是不做连接,产生.o(OBJ)文件-Idirname 在头文件的搜索路径列表中添加dirname 目录-Ldirname 在“ -I”的搜索目录中添加dirname 目录,在连接库文件时候使用-lname 如果一个库文件的名称为“libname.a” ,程序执行时若要连接这个库文件,就要使用该选项进行连接,省略库名中的前缀“lib”和后缀“ .a”10、 可执行程序文件在存储时(没有调入到内存)分为几部分,说明各段的主要内容。

      答:1、可执行代码区 (text):存放 CPU 执行的机器指令2、已初始化数据区 (data):包含了在程序中已经被初始化的全局变量和静态变量3、未初始化数据区(bss):未初始化的全局变量和静态变量,在程序开始执行之前被内核初始化为0 或空指针11、 可执行程序文件调入到内存产生进程后,分为几个存储区域,说明各区域的主要内容与作用答:前三个与10 中内容相同4、堆区:用于动态内存分配5、栈区 (heap):由编译器自动分配释放,存放函数的参数值、返回值、局部变量等12、 Linux 系统下,用C 语言编程,进行文件管理,有哪两类函数可用?试比较两类函数的优缺点答:ANSI C 优点: 1.具有丰富的函数可供使用2.直接对内存缓冲区进行操作,可以高效的写任意长度的数据块,在数据长度满足要求时安排底层系统调用,降低的系统的开销且没有数据块大小的限制,整体的效率要比直接对硬件操作的系统调用高3.具有更好的兼容性缺点:对系统调用进行封装,因此使用时会在库函数中再调用系统调用,就一次读写相同的数据来说,效率比系统调用要低POSIX 优点:在类 UNIX 等系统中有很好的可移植性,可以直接设置对硬件的控制缺点: 1.使用时会影响系统性能,如果一次只存取很少的内容,效率会很低2.硬件会限制对底层系统调用一次能读写的数据块大小,如果数据很小,会留下空隙。

      3.兼容性不是很好13、 Linux 系统中,系统默认为每个进程打开了几个个文件?即每个进程可以直接操作哪几个流?答: 3 个, STDIN_FILENO标准输入文件,STDOUT_FILENO标准输出文件, STDOUT_FILENO标准错误文件每个进程可以直接操作STDIN: 标准输入流, STDOUT 标准输出流, STDERR: 标准错误输出流14、 标准输入输出设备的文件描述符和文件流指针分别是什么?文件流指针与文件描述符有什么区别?答:使用系统调用open()成功返回一个文件描述符,文件描述符是任何打开的文件都被分配一个唯一非负整数用于表示该打开的文件,内核通过文件描述符对文件进行操作文件流指针:在操作一个文件时要打开该文件使用ANSIC 库函数 fopen 打开一个文件后返回一个文件流指针与该文件关联,所有对该文件的读写操作都可以通过该指针流完成在Linux 中,文件流指针中封装了文件描述符,才能使通过文件流指针对文件操作成为可能15、 Linux 文件类型,在shell 应用层面用ls -l 查看命令不同类型的文件分别显示什么内容?答:文件的类型,文件权限,应连接个数,拥有者,拥有者所在组,文件大小,最后一次修改时间。

      文件类型标识:目录文件 d,普通文件f,字符设备文件c,块设备文件b,管道文件p,链接文件l,socket文件 s 16、 在 Linux 某个文件系统下,文件属性中惟一标识某个文件的是什么?惟一标识一个打开的文件是什么?答:索引节点,文件描述符17、 ls lc,-lu,-lt 分别列出的是什么时间?答: lc:最后一次修改i 结点时间 .-lu:最后一次访问时间.-lt: 最后一次修改内容时间18、 一个文件设置了setuid位,该可执行文件在执行时有什么主要的影响答:会使得拥有执行该文件权限的用户执行该文件时,即使不是文件所有者也会使用文件所有者的权限19、 一个常规文件的大小可以为0(st_size字段定义),那么目录和符号连接的长度是否可以为0?答:不为0.因为每当目录文件创建时,会自动产生两个“.”开头的隐含文件,符号链接,文件包含着另一个文件的路径名20、 Linux 系统下,进程结束的方法有哪几种? 答: 1.在本进程或者其它进程中使用kill() 调用发送 SIGKILL 信号2.进程运行过程中遇到内存段冲突,非法指令等错误,由操作系统发送相应的信号终止进程3.进程执行到return 或者调用 exit()或者运行到最后自然结束。

      4.执行 exec类函数执行新的进程21、 Linux 系统下,线程结束的方法有哪几种? 答:1、调用 pthread_exit()退出 2、调用 pthread_cancel函数取消该线程3、创建线程的进程退出或者整个函数结束 4、其中的一个线程执行了exec类函数执行新的进程5.线程调用 pthread_exit()或者执行到return 或者执行完毕自然终止6.线程执行中出错由系统终止22、 线程间通信的机制有哪几种? 答:1.信号量2.互斥量3.共享全局变量23、 进程间通信的机制有哪几种? 答: 本地主机通信: 1.信号 2.信号量,消息队列,共享内存3.管道(包括有名管道和无名管道)4.共享内存网络通信: 1.socket 2.rpc 24、 画出面向连接的(TCP )socket通信模型,并解释说明其中主要的socket函数答:socket():创建一个 socket,作为通信的一个端点bind():为 socket命名,若是创建的AF_INET 套接字将其关联到一个IP 端口号,若是 AF_UNIX 套接字将其关联到一个文件系统的路径名listen():创建一个队列用来保存等待处理的连接accept():阻塞等待连接请求,在有连接请求时创建一个新的socket来与客户进行通信recv()/read():接收数据send()/write(): 发送数据connect():用户通过在一个命名的或者未命名的socket和服务器的socket建立连接25、 画出面向非连接的(UDP)socket通信模型,并解释说明其中主要的socket函数。

      read/recv write/send write/send read/recv socket,bind 26、 Linux 系统 IO 操作有哪几种方式?答: 1、阻塞 I/O2、非阻塞 I/O3、多路选择I/O4、信号驱动I/O 27、 字节排列顺序有几种方式?答:大端方式,小端方式采用大端方式将高位存放在低地址,小端方式将低位存放在低地址采用大端方式进行数据存放符合人类的正常思维,而采用小端方式进行数据存放利于计算机处理recvfrom sendto sendto recvfrom 28、 POSIX 标准下,文件管理的基本操作函数有哪些?答: open 打开文件 close关闭文件 read()从文件或设备中读读数据write() 向文件或者设备中写数据fcntl():传递控制信息到设备驱动程序编程29、 如何使用 ANSI C 标准库,实现文件拷贝操作答:假如要从file.in 文件中拷贝数据到file.out 中#include #include int main() int c; FILE *in, *out; /定义两个文件流指针in = fopen(file.in, r); /in 与 file.in 文件关联,使用只读方式打开out = fopen(file.out, w); /out 与 file.out 文件关联,用只写方式打开while(c = fgetc(in) != EOF) fputc(c, out); /每次循环从file.in 中用 fgetc()读出一个字符放到c 中,再从 c 中写入到 file.out 。

      如果没有读到文件尾(EOF) ,就继续下一次循环exit(0); 30、 如何使用 POSIX IO库,实现文件拷贝操作答:#include #include #include #include #include int main() int c50; /暂存从 file.in 中读出的字符int in, out; int nread; /存放 read()返回值,即成功读取的字符数in = open(file.in, O_RDONLY); /以只读方式打开file.in out = open(file.out, O_CREA T | O_WRONLY , S_IRUSR | S_IWRUSR); /以只写方式打开file.out , 如果该文件不存在,就使用所有者可读可写的方式创建它while(nread = read(in, c, 50) ) 0) /请求从 file.in 中读取 50个字符放入c 中,并返回实际读取的字符数放入 nread 中write(out, c, nread); /将 c中的有效字符写入file.out ,如果还有字符未读出,循环,如果返回值为0(即已经读完了所有字符) ,退出循环if(nread 0) /如果返回值为 -1,出现错误,在终端输出“read() error!”write(2, read() error!, 13); exit(0); 31、 如何编程实现文件夹的拷贝。

      答:/*输入格式如./cpfile file1 file2 */ #include #include #include #include #include #include #include #include #include #include。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.