嵌入式Linux应用程序开发过程考核【附答案】
嵌入式系统开发模拟试题(附参考答案)

嵌入式系统开发模拟试题(附参考答案)一、单选题(共100题,每题1分,共100分)1.嵌入式系统软件结构可分为A、以上都是B、板级支持包、实时操作系统C、应用编程接口(API)正确答案:A2.嵌入式系统的设计思路是()。
A、够用即可B、越复杂越好C、功能越强大越好正确答案:A3.下载模式的作用是()A、从宿主机上下载文件到SDRAM或FLASHB、储存C、加载程序正确答案:A4.()是指在输入/输出时数据处理以块为单位的设备,它一般都采用缓存技术,支持数据的随机读写。
A、块设备B、字符设备C、套接字正确答案:A5.gmtime函数功能是A、获取从今日凌晨到现在的时间差,并存放在tv,然后将当地时区的信息存放到tzB、将日历时间转化为格林威治标准时间,并将数据保存在tm结构中C、获取日历时间正确答案:B6.lsmod命令功能A、列出当前动态加载的模块清单B、将驱动模块加载到操作系统内核C、将驱动模块从内核中删除正确答案:A7.在字符设备驱动程序开发中,不允许出现()。
A、全局变量B、死循环C、静态变量正确答案:B8.函数库一般分为()和()两种格式A、动态共享B、静态动态C、静态共享正确答案:C9.从系统定制能力考虑,()系统具有优势A、LinuxB、WindowsC、UCOS正确答案:A10.中断服务子程序,又称()A、驱动程序B、驱动程序的下半部分。
C、驱动程序的上半部分。
正确答案:B11.Linux I/O 操作默认是:A、同步阻塞模式B、同步非阻塞模式C、异步阻塞模式正确答案:A12.汽车导航系统可使用()A、弱实时B、不需要使用C、以上都对正确答案:A13.嵌入式系统中的CPU具有一些与通用计算机所使用的CPU不同的特点,下面不是其特点的是()。
A、高主频B、支持实时处理C、低功耗正确答案:A14.Linux系统会用()字母表示字符设备A、bB、aC、c正确答案:C15.ARM11系微处理器的优点()A、11级流水线B、动态预测C、多线程组合D、能耗低正确答案:A16.大部分Unix系统,只能一次传送一个或多个长度是()字节(或一个更大的2次幂的数)的整块数据。
嵌入式LINUX试题

一、单项选择题1.在宿主机上开启tftp 服务时,所要修改的配置文件为(A./etc/exportsB./etc/xinetd.dC.以上都不对D./etc/xinetd.d/tftp 答案:D2.内核在配置结束后,会将用户的选择结果保存在文件()中A.defconfigB.configC.defaultD..config 答案:D3.u-boot 指令中,下载文件的命令是(A.setenvB.resetC.tftpD.ping答案:C4.Kconfig 文件中生成新的配置菜单使用(A.menuB.helpC.defaultD.config 答案:A5.在内核解压缩目录的Makefile文件中修改的ARCH变量实际是在指定(A.优化参数B.目标系统架构C.交叉编译器D.编译参数答案:B6.在构建嵌入式linux 平台过程中,具备开发能力的计算机我们称之为(A.计算机B.宿主机C.服务器D.目标系统答案:B7.内核在编译时所依赖的编译规则文件是(A..configB.MakefileC.MakeD.File答案:B8. linux 下所使用的串口调试工具是()A .gccB .nfsC . minicomD . tftp 答案: C9. 内核配置菜单生成时所依赖的文件是(A. configB. KconfigC. MakefileD. kconfig 答案: B10. U-Boot 下 tftp 下载文件到目标系统的内存当中,在内存当中默认的地址是(A. 0x30000000 B .0x30008000 C .0x30000100 D . 0x30080000答案: B11. 在操作过程中,内核编译所生成的内核压缩可执行文件是(A. s3c2440B. linux-2.6.32.2C. zImageD. 选项均不真确答案: C12. 系统环境变量中用来作为可执行文件搜索路径的变量是(A. PWDB. HISTORY_SIZE C .LD_LIBRARY_PATH D . PATH答案: D13. 创建设备文件有手动创建与自动创建之分,那么手动创建时标示设备所属种类时是用 ( )来区分的。
(完整版)嵌入式Linux笔试题库和答案(新)

嵌入式Linux笔试题库一.选择题1。
Linux的创始人是谁()A、TurbolinuxB、AT&T Bell LaboratryC、University of HelsinkiD、Linus Torvalds2。
在Linux中,命令解释器是哪个()A、管道B、分级文件系统C、字符型处理器D、 shell3。
Linux安装程序提供了两个引导装载程序( )A、GROUP和LLTOB、DIR和COIDC、GRUB和LILOD、以上都不是4。
如果当前目录是/home/sea/china,那么“china”的父目录是哪个目录( )A、/home/seaB、/home/C、/D、/sea5。
在Linux中,要删除abc目录及其全部内容的命令为:( )A、rm abcB、rm -r abcC、rmdir abcD、rmdir —r abc6.假定kernel支持vfat分区,下面哪一个操作是将/dev/hda1分区加载到/win目录?( )A、mount -t windows /win /dev/hda1B、mount —fs=msdos /dev/hda1 /winC、mount -s win /dev/hda1 /winD、mount –t vfat /dev/hda1 /win7。
显示用户的主目录的命令是什么( )A、echo $HOMEB、echo $USERDIRC、echo $ECHOD、 echo $ENV8.系统中有用户user1和user2,同属于users组.在user1用户目录下有一文件file1,它拥有644的权限,如果user2用户想修改user1用户目录下的file1文件,应拥有()权限。
A、744B、664C、646D、7469.如何查看一个RPM软件包是否安装 ( )A、rpm —Vc postfixB、rpm -q postfixC、rpm --changelog postfixD、rpm -q—changelog postfix10*.在Linux中,提供TCP/IP包过滤功能的软件叫什么( C )A、rarpB、routeC、iptablesD、filter11.nfs服务的配置文件是什么?()/etc/mtab B、/etc/fastboot C、 /etc/fstab D、 /etc/exports12。
嵌入式Linux软件开发工程师职业资格认证考试题(参考答案)

嵌入式Linux软件开发工程师职业资格认证考卷注:普通教室考试时间:120分钟一、填空题(每小题1分,共20分)1、文件2、交换分区3、/etc4、telnet5、step或next6、_预处理__、___链接___7、_rmmod_8、_快速中断__ __外部中断_9、_硬链接_ 10、_信号_ _插槽__ 11、 _用户_ 12、_/etc/inittab_13、在一个平台上生成可以在另一个平台上执行的代码_ 14、文件15、 next 16、 FrameBuffer 17、root 18、执行19、汇编 20、 IO管理系统二、单项选择题。
(每小题1分,共15分)1、A2、 B3、A4、 B5、 D6、 A7、 B8、 B9、 B10、 B 11、 B 12、A 13、A 14、D 15、A三、多项选择题。
(每小题3分,共15分)1. B C2. B C D3. B C D4. C D E5. A C D四、判断题。
(每小题1分,共10分)1、(对)2、(错)3、(对)4、(错)5、(对)6、(对)7、(对)8、(错)9、(对) 10、(对)五、综合题。
(每小题5分,共20分)1、(5分)参考答案:[每行1分]pr1: prog.o subr.ogcc –o pr1 prog.o subr.oprog.o: prog.c prog.hgcc –c –o prog.o prog.csubr.o: subr.c subr.hgcc –c –o subr.o subr.c2、参考答案:GPBCON寄存器地址0X56000010GPBDAT寄存器地址0X56000014GPBUP 寄存器地址0X560000183、参考答案:int register_chrdev(unsigned int major, const char *name, struct file_ operations *fops);其中,major是为设备驱动程序向系统申请的主设备号,如果为0,则系统为此驱动程序动态分配一个主设备号。
嵌入式Linux实时操作系统及应用编程代码与答案

嵌入式Linux实时操作系统及应用编程嵌入式Linux实时操作系统及应用编程嵌入式Linux实时操作系统及应用编程嵌入式Linux实时操作系统及应用编程附录A 习题参考答案嵌入式Linux实时操作系统及应用编程第1章1.嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。
简单的说就是系统的应用软件与系统的硬件一体化,类似与BIOS的工作方式。
具有软件代码小,高度自动化,响应速度快等特点。
特别适合于要求实时的和多任务的体系。
根据IEEE(国际电气和电子工程师(原文为devices 协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”used to control,monitor,or assist the operation of equipment,machinery or plants)。
简单地讲就是嵌入到对象体中的专用计算机系统。
嵌入式系统一般有3个主要的组成部分:硬件、实时操作系统以及应用软件。
●硬件:包括处理器、存储器(ROM、RAM)、输入输出设备、其他部分辅助系统等。
●实时操作系统(Real-Time Operating System,RTOS):用于管理应用软件,并提供一种机制,使得处理器分时地执行各个任务并完成一定的时限要求。
●应用软件:实现具体业务逻辑功能。
2.嵌入式系统的三要素是嵌入、专用、计算机;其中嵌入性指的是嵌入到对象体系中,有对象环境要求;专用性是指软、硬件按对象要求裁减;计算机指实现对象的智能化功能。
广义地说一个嵌入式系统就是一个具有特定功能或用途的计算机软硬件集合体。
即以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
3.嵌入式实时操作系统(Real-Time Operating System,RTOS)是指操作系统本身要能在一个固定时限内对程序调用(或外部事件)做出正确的反应,亦即对时序与稳定性的要求十分严格。
(完整版)嵌入式Linux笔试题库和答案(新)

嵌入式Linux笔试题库一.选择题1.Linux的创始人是谁()A、TurbolinuxB、A T&T Bell LaboratryC、University of HelsinkiD、Linus Torvalds2.在Linux中,命令解释器是哪个()A、管道B、分级文件系统C、字符型处理器D、shell3.Linux安装程序提供了两个引导装载程序( )A、GROUP和LLTOB、DIR和COIDC、GRUB和LILOD、以上都不是4.如果当前目录是/home/sea/china,那么“china”的父目录是哪个目录()A、/home/seaB、/home/C、/D、/sea5.在Linux中,要删除abc目录及其全部内容的命令为:()A、rm abcB、rm -r abcC、rmdir abcD、rmdir -r abc6.假定kernel支持vfat分区,下面哪一个操作是将/dev/hda1分区加载到/win目录?()A、mount -t windows /win /dev/hda1B、mount -fs=msdos /dev/hda1 /winC、mount -s win /dev/hda1 /winD、mount –t vfat /dev/hda1 /win7.显示用户的主目录的命令是什么()A、echo $HOMEB、echo $USERDIRC、echo $ECHOD、echo $ENV8.系统中有用户user1和user2,同属于users组。
在user1用户目录下有一文件file1,它拥有644的权限,如果user2用户想修改user1用户目录下的file1文件,应拥有( )权限。
A、744B、664C、646D、7469.如何查看一个RPM软件包是否安装( )A、rpm -Vc postfixB、rpm -q postfixC、rpm --changelog postfixD、rpm -q—changelog postfix10*.在Linux中,提供TCP/IP包过滤功能的软件叫什么( C )A、rarpB、routeC、iptablesD、filter11.nfs服务的配置文件是什么?()/etc/mtab B、/etc/fastboot C、/etc/fstab D、/etc/exports12.用命令ls -al显示出文件ff的描述:-rwxr-xr-- 1 root root 599 Cec 10 17:12 ff 由此可知文件ff的类型为:()A、普通文件B、硬连接C、目录D符号连接13.Linux操作系统中的shell是()A、命令解释器B、程序设计语言C、脚本编辑器D、编译器14.能实现文件系统远程挂载的是()。
嵌入式Linux题库及答案

嵌入式软件助理工程师认证考试试题题库一、单项选择题2、在大多数Linux发行版本中,以下哪个属于块设备( B )A. 串行口B. 硬盘C. 虚拟终端D. 打印机4、在Linux系统,默认的shell是什么( A )A.bashB.ashC.cshD.gnush5、下面哪条命令可用来确保文件“myfile”存在( B )A. cp myfile /dev/nullB. touch myfileC. create myfileD. mkfile myfile8、Linux文件权限一共10位长度,分成四段,第三段表示的内容是( D )A.文件类型B.文件所有者的权限C.文件所有者所在组的权限D.其他用户的权限10、某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为( D )A.467B.674C.476D.76412、在ARM处理器的各种工作模式中,( A )模式无法访问一些被保护的系统资源。
20100626年徐远超A. 用户模式(user)B.系统模式(system)C. 中断模式(IRQ)D.终止模式(Abort)13、如何从当前系统中卸载一个已装载的文件系统( A )A. umountB. dismountC. mount –uD. 从 /etc/fstab 中删除这个文件系统项14、你用vi编辑器编写了一个脚本文件shell.sh,你想将改文件名称修改为shell2.sh,下列命令( B )可以实现。
A. cp shell.sh shell2.shB. mv shell.sh shell2.shC. ls shell.sh >shell2.shD. ll shell.sh >shell2.sh15、在/home/stud1/wang目录下有一文件file,使用( D )可实现在后台执行命令,此命令将file文件中的内容输出到file.copy文件中。
嵌入式linux题库及答案

嵌入式linux期末测试1、什么是嵌入式系统?主要有什么特点?答:以应用为中心,以计算机技术为基础的,并且软件硬件是可剪裁的,能满足应用系统对功能、可靠性、成本、体积、功耗等指标的严格要求的专用计算机系统。
他可以实现对其他设备的控制、监视或者管理等功能。
与通用的计算机系统相比,特点为:(1)面向特定应用,一般都有实时要求;(2)集先进性的计算机技术、半导体工艺、电子技术和通信网络技术于一体的并且在不断创新的知识集成系统;(3)嵌入式系统是和具体应用对象有机结合在一起,因而其升级换代也是和具体的产品同步进行的。
(4)嵌入式系统的软硬件设计着重于高效率性。
在最大限度满足应用需求的前提下,降低成本是必须要考虑的主要问题。
(5)嵌入式系统软件一般都固化在存储器芯片中。
2、嵌入式系统有哪几个部分?答:嵌入式系统通常由嵌入式处理机、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件等几大部分组成。
3、嵌入式操作系统的作用是什么?*实际是一组软件模块集合满足多任务处理、稳定运行、安全可靠、占用系统资源少、特有的实时事件处理、便于维护和管理、简洁良好的用户界面4、什么是Linux?什么是嵌入式Linux?答:严格来讲,Linux是指由Linux本人维护并不断更新的内核。
一个嵌入式Linux系统指的是一个基于Linux内核的,但不包含有关这个内核的任何专业的库或是用户工具的嵌入式系统。
5、用Linux内核构建嵌入式操作系统有什么优势(优良特性)?答:(1)程度代码是可以获取的,可高度高;(2)有完整的源码,软件丰富并且免费;(3)得到众多硬件生产家的广泛支持;包括cpu、计算机外围设备(4)完善的通信协议、软件标准和文件管理机制;(5)提供完全免费且优秀的开发工具;(6)广泛的社群支持(7)无需购买licence,是免费的;(8)不依赖特定厂商、供应商;(9)成本相对低廉。
6、RTOS(嵌入式操作系统)强调的实时是什么概念?与中断的关系?答:实时指的是特定操作所消耗的时间(以及空间)的上限是可预知的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式Linux应用程序开发过程考核【附答案】(总7页)
-CAL-FENGHAI.-(YICAI)-Company One1 -CAL-本页仅作为文档封面,使用请直接删除 过程考核一 1、①ARM7采用采用3级流水线,而ARM9采用5级流水线,其时钟频率更高,指令执行效率也有了较大提高②ARM7采用冯诺依曼结构,而ARM9采用哈佛结构,支持指令Cache和数据Cache ,具有更高的数据处理能力③ARM9支持MMU,能够真正实现内存保护,所以比ARM7具有更强的稳定性和可靠性 2、在一种计算机平台运行的编译程序,能编译出在另外一平台上执行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译.原因:由于一般通用计算机拥有非常丰富的系统资源、使用方便的集成开发环境和调试工具等,而嵌入式系统的系统资源非常紧缺,无法在其上运行相关的编译工具,因此,嵌入式系统的开发需要借助宿主机(通用计算机)来编译出目标机的可执行代码。 3、假设现有三个 c 程序 , , , 其中主程序在 中,编译命令如下,试编写makefile文件。gcc -c gcc -c gcc -c gcc -o main 要求:使用自定义变量及自动变量 解:OBJS := CC :=gcc main:$(OBJS) $(CC) -o $@ $∧ : $(CC) -c $< : $(CC) -c $< : $(CC) -c $< 4、文件比较命令:diff[选项] 文件1 文件2 补丁命令:patch [选项] [待patch的文件[patch文件]] 关系:patch命令跟diff配合使用,把生成的补丁文件应用到现有代码上。 5、列出gcc编译器常用参数,并举例说明其用法。 -c选项:只编译不链接,生成目标文件“.o” -S选项:只编译不汇编,生成汇编代码, -E选项:只进行预编译,不进行其他处理 -o file:将file文件指定为输出文件 -g :在可执行程序中包含便准调试信息 例如: gcc –o Test 执行该指令会在当前目录下生成一个名为Test的可执行文件 过程考核二 1、bootloader第二阶段主要工作有哪些①用汇编语言跳转到main()入口函数②初始化本阶段要使用到的硬件设备③检测系统的内存映射④加载内核映像和根文件系统映像⑤设置内核的启动参数 2、列出底层文件I0及标准IO的主要函数,并说明这两种IO操作的区别。 底层文件IO:open(),read(),write(),lseek(),close() 标准IO: fopen(),fread(),fwrite(),fclose() 底层文件I/O一般没有采用缓冲,而标准I/O默认采用了缓冲机制; 从操作的设备上来区分,底层文件I/O主要针对文件操作,读写硬盘等,它操作的是文件描述符,标准I/O针对的是控制台,打印输出到屏幕等,它操作的是字符流。 3、守护进程的编写流程。①创建子进程,父进程退出②在子进程中创建新会话③改变当前目录为根目录④重设文件权限掩码⑤关闭文件描述符 5、管道及有名管道的区别。(1)无名管道只能用于具有亲缘关系的进程之间通信,而有名管道可以使互不相关的两个进程间彼此通信(2)无名管道不属于其他任何文件系统,并且只存在于内核的内存空间中;有名管道可以通过路径名来指出,并且在文件系统中是可见的(3) 一个进程向无名管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据;FIFO严格遵循先进先出,对有名管道及FIFO的读总是从开始处返回数据,对它们的写则把数据添加到末尾 6、wait函数和waitpid函数的区别。(1)wait可能阻塞调用者直到一个子进程终止,而waitpid则可以通过选项不会阻塞。(2)waitpid并不等待第一个终止的进程,它有选项可以控制它所等待的进程。 2、嵌入式系统的定义:嵌入式系统是以应用为中心,以计算机技术为基础,采用可剪裁软硬件,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统,用于实现对其他设备的控制、监视或管理等功能 3、嵌入式系统与桌面通用系统的区别(列出来两个)(1)嵌入式系统中运行的任务是专用而确定的,而桌面通用系统需要支持大量的、需求多样的应用程序(2) 嵌入式系统往往对实时性提出较高的要求。(3)嵌入式系统中使用的操作系统一般是实时操作系统(4)嵌入式系统运行需要高可靠性保障,比桌面系统的故障容忍能力弱很多 8、linux 目录结构下面放什么(了解常用) /bin 该目录中存放Linux的常用命令/boot 该目录下存放的都是系统启动时要用到的程序/dev 该目录包含了Linux系统中使用的所有外部设备/usr 用户应用程序和文件都存放在该目录下/etc该目录存放了系统管理时要用到的各种配置文件和子目录/home 用来存放该用户的主目录。/lib 该目录用来存放系统动态连接共享库/mnt可以临时将别的文件系统挂在该目录下 10、文件比较命令diff:比较两个不同的文件或不同目录下的两个同名文件功能,并生成补丁文件。 格式:diff[选项] 文件1 文件2 diff比较文件1和文件2的不同之处,并按照选项所指定的格式加以输出。diff的格式分为命令格式和上下文格式,其中上下文格式又包括了旧版上下文格式和新版上下文格式,命令格式分为标准命令格式、简单命令格式及混合命令格式,它们之间的区别会在使用实例中进行详细地讲解。当选项缺省时,diff默认使用混合命令格式。 11、网络相关命令ifconfig:查看和配置网络接口的参数;ifconfig [选项] [网络接口];ftp:利用ftp协议上传和下载文件;telnet:利用telnet协议浏览信息;telent [选项] [IP地址/域名] 12、GCC编译器能编译哪些程序编译的四个过程 可以编译如C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada等多种语言 四个过程:预处理,编译,汇编,链接 9、静态库.a与动态库.so的比较动态库只有在使用它的程序执行时才被链接使用,而不是将需要的部分直接编译入可执行文件中,并且一个动态库可以被多个程序使用故可称为共享库,而静态库将会整合到程序中,因此在程序执行时不用加载静态库 23、进程和程序区别和联系:程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和消亡的整个过程。它是程序执行和资源管理的最小单位。 17、主机环境变量配置 /etc/profile是系统启动过程执行的一个脚本,对所有用户都生效。~/.bash_profile是用户的脚本,在用户登录时生效。~/.bashrc也是用户的脚本,在~/.bash_profile中调用生效。 把下述命令添加到其中一个文件中,之后再注销重新登录即可。 PATH=$PATH :/usr/share/jdk1.5.0_05jdk export PATH 注解:a.将/usr/share/jdk1.5.0_05jdk 改为你的应用程序安装目录。下用冒号“:”来分隔路径。c.$PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值,在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种常见的错误。是把个变量导出为全局变量。 18、串口命令台:串行通讯接口很适合作为控制台,在各种操作系统上一般都有现成的控制台程序可以使用。Linux系统通常使用minicom串口通讯工具。Minicom的配置界面是菜单方式。在Shell下执行“minicom –s”命令,出现配置菜单。 19、bootloader的作用:初始化硬件设备、建立内存空间的映射图,下载操作系统映像文件到SDRAM中,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。常见:u-boot,vivi,blob 21、文件描述符:是一个非负的整数,它是一个索引值,并指向在内核中每个进程打开文件的记录表。对于Linux而言,所有对设备和文件的操作都是使用文件描述符来进行的。当打开一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符;当需要读写文件时,也需要把文件描述符作为参数传递给相应的函数。一个进程启动时,都会打开3个文件:0:标准输入1:标准输出2.标准出错 27、进程的执行模式:1)用户模式:运行的是用户程序/应用程序或者内核之外的系统程序;2)内核模式:运行操作系统核心程序。用户程序执行过程中出现系统调用或者发生中断事件,用户模式切换成内核模式。 29、exec作用exec函数族就提供了一个在进程中启动另一个程序执行的方法。(它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新的进程替换了。) 35、阻塞式通信是指, 当试图对文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待状态, 直到有东西可读或者可写为止。非阻塞状态, 如果没有东西可读, 或者不可写, 读写函数马上返回, 而不会等待。34、accept函数等待并接受客户请求:函数原型:int accept(int sockfd, struct sockaddr* addr, socklen_t* len)返回:非负描述字——成功, -1——失败。参数sockfd就是上面解释中的监听套接字,这个套接字用来监听一个端口,当有一个客户与服务器连接时,它使用这个一个端口号。参数addr ,是一个结果参数,它用来接受一个返回值,这返回值指定客户端的地址,如果对客户的地址不感兴趣,那么可以把这个值设置为NULL。参数len ,也是结果的参数,用来接受上述addr的结构的大小的,它指明addr结构所占有的字节个数。同样的,它也可以被设置为NULL。 如果accept成功返回,则服务器与客户已经正确建立连接了此时服务器通过accept返回的套接字来完成与客户的通信。 30、进程间通信:通信的种类:1)管道及有名管道2)信号3)消息队列4)共享内存5)信号量6)套接字 信号来源:硬件的原因(比如我们按下了键盘);软件的原因(比如我们使用系统函数或者是命令发出信号). 信号的种类:SIGTRMIN:不可靠信号;SIGTRMAX:可靠信号 信号生命周期:一个完整的信号生命周期可以分为3个重要阶段,这3个阶段由4个重要事件来刻画的:信号产生、信号在进程中注册、信号在进程中注销、执行信号处理函数 信号处理方式:1忽略信号,即对信号不做任何处理,但是有两个信号不能忽略,即SIGKILL及SIGSTOP。2捕捉信号,定义信号处理函数,当信号发生时,执行相应的自定义处理函数。3执行缺省操作,Linux对每种信号都规定了默认操作。 38、Linux系统的设备分为三类:字符设备、块设备和网络设备。Linux设备驱动程序与外界的接口可以分为如下3个部分:1)驱动程序与操作系统内核的接口:这是通过数据结构file_operations来完成的。2)驱动程序与系统引导的接口:这部分利用驱动程序对设备进行初始化3)驱动程序与设备的接口:这部分描述了驱动程序如何与设备进行交互,这与具体设备密切相关。 39、模块在调用insmod命令时被加载,此时的入口点是init_module()函数,通常在该函数中完成设备的注册。同样,模块在调用rmmod命令时被卸载,此时的入口点是cleanup_module()函数,在该函数中完成设备的卸载。 40、为什么是释放设备而不是关闭因为可能有其他应用程序还使用该设备。当一个进程释放设备时,其他进程还能继续使用该设备,而当一个进程关闭设备时,其他进程必须重新打开此设备才能使用它。 20、系统调用和API:系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。在实际使用中程序员调用的通常是用户编程接口——API 42、/* */ #include <> #include #include #include <> #include <> #include <> #define BUFFER_SIZE 1024 #define SRC_FILE_NAME "src_file" #define DEST_FILE_NAME "dest_file" #define OFFSET 10240 int main() { int src_file, dest_file; unsigned char buff[BUFFER_SIZE]; int real_read_len;