123习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12、vi三种工作模式(输入)(命令行)(最后行)。
13、gcc生成可执行文件的四个步骤(预编译)(编译)(汇编)(链接)。
14、(makefile)文件用来描述程序或工程中各个文件之间的相互关系
15、(make)命令用来解释makefile文件中的指令。
16、库分为(静态库)、(动态库)、(共享库)。
all : aa bb cc
aa : aa.c
gcc–o $@ $^
bb: bb.c
gcc–o $@ $^
cc : cc.c
gcc–o $@ $^
6、静态库和动态库的区别?
a)静态库:一般以.a结尾,编译后静态库文件被合并在可执行文件中,执行时只提供可执行文件即可,但是可执行文件会变大,适合于小程序使用。
b)动态库:一般以.so结尾,编译后动态库文件与可执行文件分别存在,执行时需要提供可执行文件和库文件,因此可执行文件比较小,并且几个可执行文件可以共享库,适合于大程序
}
}
2、编写Makefile:当前目录下有文件a1.c,a2.c,a3.c,其中a1.c中带有main函数,其他文件中为用户自定义函数供main函数调用。编写Makefile完成对这几个文件的编译工作生成可执行文件a。
a:a1.c a2.c a3.c
gcc–o $@ $^
3、编写makefile:在当前目录下有很多独立的程序文件如aa.c,bb.c,cc.c(每个.c有自己的main函数),分别要生成对应的可执行文件aa,bb,cc,为了方便用户操作,写一个makefile使得调用make命令会重新编译最新修改的程序文件。
第一章习题
一、填空
1、命令行参数是(main)函数的参数。
2、main函数的参数若有两个参数,则第一个参数代表(命令行参数个数),第二个参数代表(指向各命令行参数字符串的指针数组)。
3、Linux中日期时间的表示方法有(算术类型)、(结构体类型)、(字符串类型)。
4、使用time函数获得的时间是(算术)类型,代表(自1970年1月1日零时到当前时间的秒数)。
{
if(argc==1)
printf("no args\n");
if(argc==2)
{
if(strcmp(argv[1],"-a")==0)
printf("I will deal with -a\n");
if(strcmp(argv[1],"-l")==0)
printf("I will deal with -l\n");
3、进程五种基本状态之间的转换及转换条件。
4、什么是系统调用?
操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。
5、系统调用、库函数的区别和联系?
(1)从用户角度观察
都以常见的C语言函数形式出现,调用方法一致。
(2)从实现者角度观察
调用库函数有的需要内核的服务,有的不需要,需要内核服务的库函数是要调用系统调用的。调用系统调用后执行内核程序。
二、简答
1、Linux系统的特点有哪些?
开放性,多用户,多任务,良好的用户界面,设备独立性,丰富的网络功能,可靠的系统安全,良好的可移植性。
2、程序和进程的概念?区别?
程序:指令集合
进程:程序在数据集合上的一次运行过程,是拥有资源和分派资源的基本单位。
区别:进程为动态概念,程序为静态概念。程序是指令的有序集合,“永远”存在;进程强调的是执行,是程序在数据集上的一次执行,有创建ile文件的显式规则是什么?
目标:依赖
<tab>实现目标的命令
三、编程
1、如果用户输入一个参数,则打印"no args",如果输入两个参数,并且第二个命令行参数是-a,则打印“I will deal with -a”,如果是-l,则打印“I will deal with -l”。
int main(int argc,char *argv[])
5、把算术类型时间表示转换成结构体类型使用(localtime)函数。
6、把算术类型时间表示转换成字符串类型使用(ctime)函数。
7、mktime函数把(结构体)类型时间表示转换成(算术)类型时间表示。
8、Unix两大主流版本(System)和(BSD)。
9、Linux操作系统的组成(内核)(Shell)(文件系统)(实用程序)。
10、每个存放在磁盘上的文件有(数据块)(i节点)两部分组成
11、如果一个C程序的入口表示为main(int argc, char *argv[ ] ),编译该程序后的可执行程序为 a.out。那么在命令行输入命令“./a.out–f foo”后,main中的参数argv[1]指向的字符串是(“-f”)。
相关文档
最新文档