第三讲--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 程序编译
在实际项目中,系统往往由多人共