好文档 - 专业文书写作范文服务资料分享网站

中北大学嵌入式习题答案第5章

天下 分享 时间: 加入收藏 我要投稿 点赞

第五章 linux与C语言编程基础

一、填空题

1、在宿主机上使用编译器软件将嵌入式应用、嵌入式操作系统编译成为可以在 目标机 上运行代码的过程,称为 交叉编译 ,而采用的编译器称为 交叉编译器 。 2、C语言中采用 _ asm 标记实现内嵌汇编。

3、使用gcc命令若想生成调试信息,应该给gcc加参数 -g ,若想生成警告信息,应该给gcc加参数 -Wall 。

4、有源文件test.c,若想生成目标文件test.o,正确的命令是 gcc -c test.c 。 5、gdb对 可执行 文件进行调试。

6、工程管理器make读入的配置文件为__makefile__。 7、不带缓存的文件I/O操作,主要用到的5个函数为open、close、read、write和 lseek 。

这里的不带缓存是指每一个函数都只调用系统中的一个函数(不理解这句话的含义)。这些函数虽然不是ANSI C的组成部分,但是是POSIX 的组成部分。

lseek函数(随机访问文件) 移动文件读/写指针

使用UNIX系统调用来读取文件内容时,系统究竟是从文件的哪一个位置读取数据,完全由文件指针决定。例如:刚开始读取数据时,文件指针通常是指向文件的起始位置。 二、选择题

1、假设当前目录下有文件Makefile,下面是其内容: pr1: prog.o subr.o

gcc –o pr1 prog.o subr.o prog.o: prog.c prog.h

gcc –c –l prog.o prog.c subr.o: subr.c

gcc –c –o subr.o subr.c clear:

rm –f pr1*.o

现在执行命令make clear,实际执行的命令是( A ): A、rm –f pr1*.o

B、gcc –c –l prog.o prog.c D、都执行

C、gcc –c –o subr.o subr.c

2、_ B 命令是在vi编辑器中执行存盘退出。 A ) q B ) wq C) q! D) WQ 3、在vi编辑器中执行不存盘退出的命令为( A )

A、:q 编译结束,退出vi

B、:sq

C、:q! 不保存编辑过的文档,强制退出 D、:wq 保存文档并推出

4、vi编辑器中不包括下面哪种模式( A )

A、编辑模式 B、命令行模式 C、插入模式 D、底行模式

【解】:命令行模式——初始模式 插入模式 底行模式

5、下面哪种语言GCC编译器不支持( C )

A、C B、Java C、ASP D、C++

ASP即Active Server Pages,是MicroSoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。当服务器收到对ASP文件的请求时,它会处理包含在用于构建发送给浏览器的HTML(Hyper Text Markup Language,超文本置标语言)网页文件中的服务器端脚本代码。除服务器端脚本代码外,ASP文件也可以包含文本、HTML(包括相关的客户端脚本)和com组件调用 6、GCC的正确编译流程为( A )

A、预处理-编译-汇编-链接 B、预处理-编译-链接-汇编 C、预处理-链接-编译-汇编 D、编译-预处理-汇编-链接

7、下面哪项关于GCC编译过程的说法是错误的( D )

A、编译阶段GCC要检查代码规范性、是否有语法错误等,确定代码的实际要做的工作

B、汇编阶段是把编译阶段生成的.s文件转成目标文件

C、预处理阶段,GCC编译器将代码中包含的头文件编译进来 D、GCC在编译时默认使用静态库

8、下面哪些与GDB相关的说法是错误的( B )

A、GDB能调试可执行文件 B、GDB能调试源代码 C、GDB对编译过程有要求 D、GDB支持交叉调试

9、在GDB调试过程中,使用下面哪项命令设置断点,其中m代表行号 A

A、b m B、c m C、n m D、s m

三、写程序

有3个进程,其中一个为父进程,其余两个是该父进程创建的子进程,其中一个子进程在暂停3s后异常退出,另一个子进程运行“cat my.txt”指令。父进程先用阻塞方式等待第

二个进程的结束,然后用非阻塞方式等待第一个子进程的退出,待收集到两个子进程结束的消息后,父进程就返回。

Printf(“I am child1 and I execute ‘cat my.txt ’ \\n”); If(execlp(“cat”,”my.txt”,NULL)<0);

四、读程序,写出程序运行结果 /* thread.c */ ….

#define THREAD_NUMBER #define REPEAT_NUMBER

3 3

#define DELAY_TIME_LEVELS 10.0 void * thrd_func(void *arg){

int thrd_num = (int)arg;

中北大学嵌入式习题答案第5章

第五章linux与C语言编程基础一、填空题1、在宿主机上使用编译器软件将嵌入式应用、嵌入式操作系统编译成为可以在目标机上运行代码的过程,称为交叉编译,而采用的编译器称为交叉编译器。2、C语言中采用_asm标记实现内嵌汇编。3、使用gcc命令若想生成调试信
推荐度:
点击下载文档文档为doc格式
74uff4npce38gut0xsx29kcek7hlwh013yt
领取福利

微信扫码领取福利

微信扫码分享