




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京航天泰睿科技有限公司 嵌入式 linux 笔试题目 一、 简答题: 1 请写出实现后面几个功能的 Linux 命令:显示文件,拷贝,删除 Lsls -la:-l 查看文件所有的信息,-a 查看所有的文件,包括隐藏的文件。 Cp /mnt/a.c/opt/ Rm /mnt/a.c 2 dowhile 和 whiledo 有什么区别? dowhile 至少执行一次循环体,whiledo 先判断循环条件再执行循环体。 3 Linux 系统下.ko 文件是什么文件?.so 文件是什么文件? .so 文件是动态链接库文件,相当于 win 下的 .dll 文件。 .ko 是内核模块文件,是内核加载的某个模块,一般是驱动程序。 4 如何使用 vi 进行块拷贝、粘贴、删除的操作 yy:复制鼠标当前所在行 dd:删除鼠标当前所在行 nyy/dd:复制/删除鼠标所在行开始的 n 行 p:粘贴复制内容到鼠标所在行 G:移动到文件尾(大写) u:取消前一个动作(大写) :q:退出 :w:保存 :wq:保存退出 :q!:强行退出 :w文件名:另存为如: :w hello :set nu :显示行号 :set nonu:取消行号 5 在 Linux 系统中,用来存放系统所需要的配置文件和子目录的目录是。 /etc:该目录下存放各种配置文件。对于 PC 上的 linux 系统,/etc 目录下的目录,文件非常多。 6 如何使用 gcc 得到宏展开的中间代码 Gcc-E*.i*.c -c:编译成把源文件目标代码,不做连接的动作。 -s:把源文件编译成汇编代码,不做汇编和连接的动作。 -E:只把源文件进行预处理之后的结果输出来。不做编译,汇编,连接的动作。 7 如何使用 gdb 调试多进程 答:最常用的是 attach 方法, 首先写程序时在子进程中调用 sleep 函数休眠30-60秒,将程序编译成可执行文件,后台运行可执行 文件,ps -fu root 查看进程号,gdb,attach 进程号,再使用 stop 暂停子进程,设置一些断点和一 些 watch,break 设置断点,list 命令察看源代码,step 单步运行,next 运行下一步,continue 继 续运行,print 打印变量信息。 8 用户进程间通信主要哪几种方式 管道、信号、消息队列、共享内存、信号量、套接字。 线程同步的方法主要有:互斥锁(mutex)和信号量 9 解释命令 ls -amore 具体含义。 A:输出所有文件,包括隐藏文件,m:横向输出文件名,并且中间以,号分开,r:列出子目录下的 文件,o 与-l 相似,输出文件的详细信息,不输出组信息。 10 LINUX 中的管道指什么,重定向又指什么 管道是 linux 中很重要的一种通信方式,它是把一个程序的输出直接连接到另一个程序的输入。 11 请写出下列代码的输出内容 #include “stdio.h” main() int a,b,c,d; a=10; b=a+; c=+a; d=10*a+; printf(“b,c,d:%d,%d,%d“,b,c,d); return 0; A:13b:10 c:12d:120 B,c,d:10,12,120 12 编写一个函数 int charnum(char fn10),该函数以只读方式打开文件 fn,,通过统计,返回文 件中字符的个数,请使用 while 循环实现计数功能。 请勿修改主函数 main 和其他函数中的任何内 容,仅在函数 charnum 的花括号中填写若干语句。 文件 kt7_2.cpp 的内容如下: #include #include #include int charnum(char fn10); voidmain() intnum; num=charnum(“abc.txt“); cout #include #include #include Main() Pid_t result; Result = fork(); If(result = -1) perror(fork);exit(); Else if (result = 0) printf(“hello wold”); if (result = 0) printf(“hello wold”); 15 打开一个文件,并读取从第100字节开始的50字节数据。 #include #include #include #define MAX_LEN 4096 int main(int argc, char *argv) int fd, i; char bufMAX_LEN; for(i=0; iresult.txt 10.请写出5个 LINUX 基本系统调用的函数名称. 包括与设备文件的交互和与普通文件的交 互的系统调用(open, close, ioctl, create, unlink, . . . ) ;与进程相关的系统调用又包括进程 控制系统调用(fork, exit, getpid, . . . ) , 11.描述 LINUX 中字符设备驱动的基本编写框架. 根据 struct file_operations 的数据结构, 填充里面的如:open,write,close,ioctl 等函数并进行模块的初始化和退出 12.编写一个 hello world 程序, 要求以创建进程的方式打印 hello world 编写 hello.c 文件如 下 #include “stdio.h “ int main() fork(); printf(“hello world!/n“); exit(0); 编译 hello.c 生成 hello 可执行文件在 shell 中执行#fork hello 便可以看到打印结果 13.浅谈 bootloader,kelnel,filesystem 三者之间的关系 嵌 入 式 是 linux 启 动 过 程 如 下 。bootloader-kernel-filesystem-application 先 是 bootloader,它是 linux-kernel 移植的基石,Bootloader 是在系统启动之后、Kernel 运行之 前所执行的第一段代码,其任务是为调用 Kernel 准备必要的软硬件环境。完成 bootlaoder 的移植后,就是 kernel 的移植。主要包括添加特定模块的驱动,针对具体要求对内核进行 配置。这里有两点要注意:一是有些参数要与所用的 bootloader 向对应,如 nand 的分区参 数。二是 bootlaoder 对特定模块的驱动在进入 kernel 后便会有 kernel 接管,并有 kernel 重新驱动文件系统主要是建立根文件和一些系统功能的实现,如 bash。用 busybox 很容易 搞定。 3 Linux 系统下.ko 文件是什么文件?.so 文件是什么文件? Linux 下面文件名不代表什么。但是从常识上讲,.ko 代码是驱动编译成的格式, .so 文件 一般是动态库文件 4 二维数组 AA 3 7 的另外一种表示方法: *(AA3+7)*(*(AA+1)+7) 5 请写出下列代码的输出内容 #include “stdio.h” main() int a,b,c,d; a=10; b=a+; c=+a; d=10*a+; printf(“b,c,d:%d,%d,%d“,b,c,d); return 0; 输出结果为:b, c, d: 10, 12, 120 嵌入式面试题 一、ANSI C/C+部分 简答题 1、 如何在 C 中为一个数组分配空间? 2、 如何初始化一个指针数组? 3、 s10的另外一种表达方式是什么? 4、 对(-1.2345)取整是多少? 5、 如何让局部变量具有全局变量的生命期? 6、 C 中的常量字符串应在何时定义? 7、 如何在两个.C 文件中引用对方的变量? 8、 a+b 所表示的是什么意思?有什么问题? 问答题 1、下面 x,y,*p 的值是多少,有什么问题? int x,y,z = 2; int *p = x = sizeof(*p); y = x/*p; 2、 一般使用 malloc 是,需要进行强制类型转换,如: char *s;s = (char *)malloc(21); 下面中?该如何填写,才可以正确执行强制类型转换? int (* monthp)31; monthp = (?)malloc(31); 3、 指针和数组的区别是什么?用一个简单的声明把它区分开。 指针和数组的声明在什么情况下是相同的? 4、 C 语言的左值(lalue)和右值(rvalue)的含义是什么? 5、 说明 C 语言中术语“声明“ ”定义“ ”原型“ 的含义? 6、 编写一个函数,输入一个整形数,可以选择按照 8/10/16 进制输出字符串; 7下面是一个 16*16 的黑白图标: static unsigned short stopwatch = 16 个数; 如何修改声明,可以使之在源代码中形象的表现出图像的摸样? 分析题 本题假设下面代码中的变量都合法,调用外部的函数都正确,回答几个问题: 这些代码意图要干什么? 是否有问题? 如果有问题,该如何修改,或者如何避免类是错误的发生? 如果没有问题,如果有输出,输出时什么? 1./* x =2 ,y = 3,z=? */ if(x = 0) if(y = 0) z = -1: else z = x+y; 2. int is_gb2312_char(char c1,char c2) if (c1=0xal else return 0; 二、POSIX 方面的知识 简答题 。下面的题目必须全部答对才给分; 1、 在 UNIX 环境中,编译流程是什么? 2、 一般 UNIX 的程序有多少段,举一个实际的例子说明。 3、 系统调用和库函数调用有什么区别。 在 linux2.4.xx 上的 glibc 和 newlib(一种嵌入式 C 库)的系统调用有什么不同? 4、 列出你所知道的 2 个内存跟踪库 设计一个内存跟踪方案,为什么选择这个方案 综合编程题 1、 有一个 8MB 的文件,编写一个 copy 程序,拷贝这个文件,并计算所需要的时间,指出 是哪些代码或函数造成速度瓶颈。 提示:如果只是用 read/write 调用,不是一个好的实现。 三、编译器与调试器 1、 如何使用 gcc 得到宏展开的中间代码 2、 如何通过 gcc 在命令行中传入宏定义 3、 在哪一级优化的情况下,内联函数才
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025鲜花造型考试题及答案
- 2025共话教育考试题及答案
- 2025选聘人员考试题及答案
- 4 彩墨的趣味教学设计-2025-2026学年小学美术广西版三年级上册-广西版
- 2025届福鼎市中考四模数学试题含解析
- 户外招牌专业知识培训课件
- 户外安全防控知识培训总结课件
- 建筑方案设计标题大全图片(3篇)
- 建筑方案设计-结构设计(3篇)
- 服务化维修成本分析-洞察及研究
- 轻食健康饮食课件
- 2025年电竞馆电脑采购合同范本
- 压疮PDCA降低长期卧床患者压疮发生率
- 2025版挖掘机采购合同及配件供应范本
- 武汉市养犬管理暂行办法
- 肝恶性肿瘤宣教
- 2025年网格员招聘笔试题库含答案
- 华为公司会议管理办法
- 抗菌型PE(聚乙烯)保鲜膜行业深度调研及发展项目商业计划书
- 2025年版二级建造师《机电工程》考试真题(题后附权威解析)
- 医院收费窗口培训
评论
0/150
提交评论