嵌入式linux应用程序开发 试题,嵌入式Linux应用程序开发测试题

《嵌入式Linux应用程序开发测试题》由会员分享,可在线阅读,更多相关《嵌入式Linux应用程序开发测试题(9页珍藏版)》请在金锄头文库上搜索。

1、嵌 入 式 Linux 应 用 程 序 开 发 测 试 题 ( 14 级 嵌 入 式 方 向 专 用 )一 、 选 择 题1、 下 列 哪 一 项 不 是 嵌 入 式 操 作 系 统 的 特 点 A、 占 有 资 源 少 B、 低 成 本 C、 高 可 靠 性 D、 交 互 性2、 在 Linux 内 核 配 置 过 程 中 , 下 面 哪 项 命 令 采 用 的 是 基 于 图 形 窗 口 模 式 的 配 置界 面 A、 make config B、 make menuconfig C、 make xconfig D、 make oldconfig 3、 在 Linux 内 核 配 置 过 。

2、程 中 , 下 面 哪 项 命 令 建 立 依 赖 关 系 A、 make config B、 make menuconfig C、 make dep D、 make clean 4、 交 叉 编 译 器 中 , 下 面 哪 项 不 是 必 需 包 含 的 A、 glibc B、 gcc C、 binutils D、 tmake 5、 内 核 的 编 译 主 要 步 骤 不 包 括 下 面 哪 项 A、 内 核 配 置 B、 建 立 依 存 关 系 C、 建 立 内 核 D、 加 载 内 核 6、 内 核 编 译 时 选 项 前 的 尖 括 号 中 可 以 是 空 , *, M, 其 中 *表。

3、 示 A、 选 项 将 编 译 为 模 块 B、 不 包 含 选 项 C、 包 含 选 项 7、 Bootloader 的 stage1 阶 段 主 要 完 成 的 工 作 不 包 括 下 面 哪 项 A、 基 本 的 硬 件 初 始 化 B、 为 加 载 stage2 准 备 RAM 空 间 C、 拷 贝 stage2 到 RAM 中 D、 用 汇 编 语 言 跳 转 到 main 入 口 函 数8、 GCC 的正确编译流程为A、预处理-编译-汇编-链接 B、预处理-编译-链接-汇编C、预处理-链接-编译-汇编D、编译-预处理-汇编-链接9、如需 GCC 提 供 编 译 过 程 中 所 有 。

4、有 用 的 报 警 信 息 , 则 在 编 译 时 应 加 入 选 项 A、- w B、-Wall C、- werror D、- error10、下面哪些与 GDB 相关的说法是错误的 A、GDB 能调试可执行文件B、GDB 能调试源代码、GDB 对编译过程有要求 D、GDB 支持交叉调试11、在 GDB 调试过程中,使用下面哪项命令设置断点,其中 m 代表行号 A、b m B、c m C、n m D、s m12、open 函数原型中的 O_RDWR 标志表示文件打开方式为 A、只读方式打开文件 B、可写方式打开文件 C、读写方式打开文件 D、以添加方式打开文件,在打开文件的同时,文件指针指向。

5、文件末尾13、在 Linux 操作系统中,串口设备的设备名一般为 A、com1 B、port1 C、ttyS0 D、serl1 14、下面哪项对 Linux 操作系统下 fork 函数的描述是错误的 A、fork 函数执行一次返回两个值 B、新进程称为子进程,而原进程称为父进程 C、父进程返回值为子进程的进程号 D、子进程返回值为父进程的进程号15、编写守护进程的第一步为 A、创建子进程,父进程退出 B、在子进程中创建新会话C、改变当前目录为根目录 D、关闭文件描述符16、在关于 TCP/UDP 的描述中,下面哪项是错误的 A、TCP 数据传输实现了从一个应用程序到另一个应用程序的数据传递B、。

6、TCP 对话通过三次握手来完成初始化 C、UDP 即用户数据报协议是一种面向连接的协议D、一个 UDP 应用可同时作为应用的客户或服务器方17、常见的 socket 类型中不包括下面哪项 A、SOCK_STREAM B、SOCK_DGRAM C、SOCK_DTRAN D、SOCK_RAW18、以下哪项不是 autotools 系列工具之中的一种。A、automake B、autoconf C、autoclean D、autoscan19、下列关于网络编程的叙述中,错误的是 B 。 A.一个完整的网络程序应该包含两个独立的程序,它们分别运行在客户端和服务器端。 B.当使用 UDP 编程时,如果函。

7、数 sendto( )函数成功返回,表示系统发出的数据被通讯的对方准确接收到了。 C.相同条件下 UDP 发送数据的速度要比 TCP 快。 D.端口号是 16bit 的地址码,端口号和 IP 地址构成一个插口(socket)。20、下列 makefile 自动变量中,表示目标文件完整名称的是A、$ B、$#include #include #include #include int main()int pipe_fd2;pid_t pid;char buf_r100;char* p_wbuf;int r_num;memset(buf_r,0,sizeof(buf_r); (1) 将数据缓冲区清。

8、 0 if(pipe(pipe_fd)0) (5) 子进程读取管道内容 printf( %d numbers read from the pipe is %sn,r_num,buf_r);close(pipe_fd0); (6)关闭子进程读描述符 exit(0);else if(pid0) (7) 父进程运行控制语句 close(pipe_fd0); (8)关闭父进程的读描述符 if(write(pipe_fd1,Hello,5)!=-1) (9)将数据写入缓冲区 printf(parent write1 success!n);if(write(pipe_fd1, Pipe,5)!=-1)pr。

9、intf(parent write2 success!n);close(pipe_fd1); (10)关闭父进程写描述符 sleep(3);waitpid(pid,NULL,0);阻塞方式 等待子进程结束exit(0);2、阅读程序,写出程序的执行结果,并分析程序的执行过程。(假设父子进程均可在一个时间片内执行完,且操作系统每次均先调度子进程。)#include #include int main() pid_t result; int count=5; printf(before fork,count=%dn,count); result=fork(); if(result0) count+。

10、; printf(This is parent!n”); else count-; printf(This is child!n); printf(after fork count=%dn,count); return 0;before fork,count=5 This is child after fork count=4 This is parent! after fork count=6程序的执行过程如下: 程序先定义了两个变量 result 和 count,然后输出变量 count 的值, 得到before fork count=5这一行输出。当执行到 result=fork()时程。

11、序分叉,产生父子两个进程。系统首先调度子进程执行,直至子进程结束。而在子进程中 result 为 0,故走的是条件分支的最后一个分支,输出:This is child. after fork count=4 子进程执行完了之后调度父进程执行,直至父进程结束。而在父进程中 result为子进程号,大于 0,于是走条件分支的第二个个分支,输出:This is parent after fork count=6 四、编程题1、编写一个语言源程序 ex.c,(1)用以在打开当前目录下的文件“ex.txt”,如果没有则创建该文件,并使其具有读写属性,(2)编写一个makefile 实现自动编译,生成可执。

12、行文件 ex。void main(void)int fid;fid = open(“./ex.txt”,O_RDWR|O_CREAT); if(fid=-1)printf(“open or create error n”);exit(0);close(fid);objects = ex.o exec = ex all:$(objects)gcc o $(exec) $(objects)ex.o:ex.c gcc c ex.c clean:rm r $(exec) $(objects)2、假定你在目录/root/arm 下有一个 C 程序,它由几个单独的文件组成,而这几个文件又分别包含了其他文件。

13、,如下图所示:文件 包含文件main.c stdio.h, table.hlist.c list.hsymbol.c symbol.htable.c table.htable.h symbol.h, list.h试编写 makefile 文件,最终的目标文件为 ex1(交叉编译器为 arm-linux-gcc)CC=arm-linux-gccex1: main.o list.o symbol.o table.o$(CC) -o ex1 main.o list.o symbol.o table.omain.o: main.c table.h symbol.h list.h$(CC) -c -o 。

14、main.o main.clist.o: list.c list.h$(CC) -c -o list.o list.csymbol.o: symbol.c symbol.h$(CC) -c -o symbol.o symbol.ctable.o: table.c table.h symbol.h list.h$(CC) -c -o table.o table.cclean:rm ex *.o五、简答题1、什么是交叉编译?嵌入式交叉编译怎么实现?2、Bootloader 启动流程是怎么样的?3、比较全缓冲、行缓冲和不带缓冲,并说明标准输入输出、标准错误各使用哪种类型的缓冲?4、编写守护进程包括哪几个步骤,每个步骤分别怎么实现?5、进程的信号与信号量通信有什么区别?6、无名管道和有名管道在使用时有什么区别?分别使用什么函数创建无名管道和有名管道?。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值