linux c程序设计基础答案,第三讲--Linux C 程序设计基础.pdf

第三讲--Linux C 程序设计基础.pdf

LINUX 操作系统

LINUX 操作系统十讲

LINUX 操作系统十讲

信息科学与工程学院 付冲

LINUX 操作系统

Linux 操作系统十讲

第一讲 Linux 导论

第二讲 Linux 文件系统与基本指令集

第三讲 Linux C 程序设计基础

第四讲 Linux 文件系统程序设计

第五讲 Linux 多进程与多线程程序设计

第六讲 Linux 进程间通信程序设计

第七讲 Linux 服务与TCP/IP 网络程序设计

第八讲 Linux Shell 程序设计

第九讲 Linux GUI 程序设计

第十讲 Linux 前沿热点技术导论(集群,虚拟化,存储,安全)

LINUX 操作系统

第三讲Linux C 程序设计基础

LINUX 操作系统

3.1 一个简单C 程序的编译

程序1. 选择法排序

select_sort.c

思考:你能给出几种基本的排序算法?

LINUX 操作系统

(1) cc 与gcc 分别是Unix 与Linux 平台下的C 编译器;

(2) gcc —— g 的含义?

g —— GNU;

(3) Linux 为保证与Unix 指令相兼容,同时支持cc,其本质为:

cc 是gcc 的符号链接,即cc 完全等同于gcc。

注意: 在Unix 下只有cc,不能使用gcc;

LINUX 操作系统

(4) 头文件(.h) 和系统库文件(.so) 的位置?

头文件: /usr/include

系统库文件: /usr/lib

(5) cc (gcc) 在执行编译工作的时候,总共需要4 步:

(a) 预处理,生成.i 的文件;

(b) 将预处理后的文件转换成汇编语言,生成.s

的文件;

(c) 由汇编变为目标代码,生成.o 的文件;

(d) 连接目标代码,生成可执行程序。

LINUX 操作系统

(6) 最简单的编译方法

编译:gcc select_sort.c

结果: 系统将select_sort.c 编译为可执行文件a.out。

运行: 在终端提示符下执行./a.out 即可得到执行结果。

LINUX 操作系统

注意两点:

(a) 为什么需要./ 呢,直接执行a.out 为什么不可以呢?

注意,产生该问题主要是由于我们平时使用Windows 与Dos

为主的缘故,Unix/Linux 规定在搜索一个文件时,只在环境变量

PATH 设定的路径中搜索,即如果当前路径不在PATH 中,那

么执行当前路径下文件时会报错。

提示:查看一个环境变量echo $PATH

永久增加/设定一个环境变量: /etc/profile 文件。

LINUX 操作系统

(b) 系统将select_sort.c 直接编译为可执行文件,.i, .s, .o 中间过

程文件不会出现在系统中。

若要自己为可执行文件起名呢?

gcc -o select_sort select_sort.c

即可将可执行文件命名为select_sort,而不是系统默认指定

的a.out 了。

LINUX 操作系统

3.2 一个由多个源程序文件组成的C 程序编译

在实际项目中,系统往往由多人共