《6寸pdf Linux C编程一站式学习.pdf》由会员分享,可在线阅读,更多相关《6寸pdf Linux C编程一站式学习.pdf(94页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本文由巭孬只会一招贡献p d f 1。Li n u x C编程一站式学习 下一页Li n u x C编程一站式学习宋劲杉 北京亚嵌教育研究中心版权?2008,2009 宋劲杉,北京亚嵌教育研究中心 Pe r m i s s i o n i s g r a n t e d t o co p y,d i s t r i b u t e a n d/o r m o d i f y t h i s d o c u m e n t u n d e r t h e t e r m s o f t h e GNU Fr ee Do c u m e n t a t i o n Li c e n s e,Ve
2、r s i o n 1.3 o r a n y l a t e r v e r s i o n p u b l i s h e d b y t h e Fr e e So f t w a r e Fo u n d a t i o n;w i t h t h e In v a r i a n t Se c t i o n s b e i n g 前言,w i t h n o Fr o n t-Co v e r Te x t s,a n d n o Ba c k-Co v e r Te x t s.A c o p y o f t h e l i c e n s e i s i n c lu d e
3、 d i n 附录 C,GNU Fr e e Do c u m e n t a t i o n Li c e n s e Ve r s i o n 1.3,3 No v e m b e r 2008.2009.5.4 修订历史 修订 0.6 2009.2.27添加了GFDL许可证,正式网络发布。第三部分还很粗糙,错误也有不少,有待改进。第一部 分和第二部分已经比较成熟,第二部分还差三章没写。修订 0.7 2009.4.24全书的章节基本完成,但有些章节还很不完善。目录历史 前言 I.C语言入门 1.程序的基本概念 1.程序和编程语言 2.自然语言和形式语言 3.程序的调试 4.第一个程序 2.
4、常量、变量和表达式 1.继续He l l o Wo r ld2.常量 3.变量 4.赋值 5.表达式 6.字符类型与字符编码 3.简单函数 1.数学函数 2.自定义函数 3.形参和实参 4.局部变量与全局变量 4.分支语句 1.i f语句 2.i f/e l s e 语句 3.布尔代数 4.s w i t c h 语句 5.深入理解函数 1.r e t u r n 语句 2.增量式开发 3.递归 6.循环语句 1.w h i l e 语句 2.d o/w h i l e 语句 3.f o r 语句 4.b r e a k 和c o n t i n u e 语句 5.嵌套循环 6.g o t o
5、 语句 7.结构体 1.复合数据类型结构体 2.数据抽象 3.数据类型标志 4.嵌套结构体 8.数组 1.数组的基本操作 2.数组应用实例:统计随机数 3.数组应用实例:直方图 4.字符串 5.多维数组 9.编码风格 1.缩进和空白 2.注释3.标识符命名 4.函数 5.i n d e n t 工具 10.g d b 1.单步执行和跟踪函数调用 2.断点 3.观察点 4.段错误 11.排序与查找 1.算法的概念 2.插入排序 3.算法的时间复杂度分析 4.归并排序 5.线性查找 6.折半查找 12.栈与队列 1.数据结构的概念 2.堆栈 3.深度优先搜索 4.队列与广度优先搜索 5.环形队列
6、13.本阶段总结 1.C语言基本语法 2.思维方法与编程思想 3.调试方法 II.C语言本质 14.计算机中数的表示 1.为什么计算机用二进制计数 2.不同进制之间的换算 3.整数的加减运算 4.浮点数 15.数据类型详解 1.整型 2.浮点型 3.类型转换 3.1.In t e g e r Pr o m o t i o n 3.2.Us u a l Ar i t h m e t i c Co n v e r s i o n 3.3.由赋值产生的类型转换 3.4.强制类型转换 3.5.编译器如何处理类型转换16.运算符详解 1.位运算 1.1.按位与、或、异或、取反运算 1.2.移位运算 1.
7、3.掩码 1.4.异或运算的一些特性 2.其它运算符 2.1.复合赋值运算符 2.2.条件运算符 2.3.逗号运算符 2.4.s i z e o f 运算符与t y p e d e f 类型声明 3.Si d e Ef f e c t 与Se q u e n c e Po i n t 4.运算符总结 17.计算机体系结构基础 1.内存与地址 2.CPU 3.设备 4.MMU 5.Me m o r y Hi e r a r c h y 18.x 86汇编程序基础 1.最简单的汇编程序 2.x 86的寄存器 3.第二个汇编程序 4.寻址方式 5.ELF文件 5.1.目标文件 5.2.可执行文件 1
8、9.汇编与C之间的关系 1.函数调用 2.m a i n 函数和启动例程 3.变量的存储布局 4.结构体和联合体 5.C内联汇编 6.v o l a t i l e 限定符 20.链接详解 1.多目标文件的链接 2.定义和声明 2.1.e x t e r n 和s t a t i c 关键字 2.2.头文件 2.3.定义和声明的详细规则3.静态库 4.共享库 4.1.编译、链接、运行 4.2.动态链接的过程 4.3.共享库的命名惯例 5.虚拟内存管理 21.预处理 1.预处理的步骤 2.宏定义 2.1.函数式宏定义 2.2.内联函数 2.3.#、#运算符和可变参数 2.4.宏展开的步骤 3.条
9、件预处理指示 4.其它预处理特性 22.Ma k e f i l e 基础 1.基本规则 2.隐含规则和模式规p a g e 1则 3.变量 4.自动处理头文件的依赖关系 5.常用的m a k e 命令行选项 23.指针 1.指针的基本操作 2.指针类型的参数和返回值 3.指针与数组 4.指针与c o n s t 限定符 5.指针与结构体 6.指向指针的指针与指针数组 7.指向数组的指针与多维数组 8.函数类型和函数指针类型 9.不完全类型和复杂声明 24.函数接口 1.本章的预备知识 1.1.s t r c p y 与s t r n c p y 1.2.m a l l o c 与f r e
10、e 2.传入参数与传出参数 3.两层指针的参数 4.返回值是指针的情况 5.回调函数 6.可变参数25.C标准库 1.字符串操作函数 1.1.初始化字符串 1.2.取字符串的长度 1.3.拷贝字符串 1.4.连接字符串 1.5.比较字符串 1.6.搜索字符串 1.7.分割字符串 2.标准I/O库函数 2.1.文件的基本概念 2.2.f o p e n/f c l o s e 2.3.s t d i n/s t d o u t/s t d e r r 2.4.e r r n o 与p e r r o r 函数 2.5.以字节为单位的I/O函数 2.6.操作读写位置的函数 2.7.以字符串为单位的
11、I/O函数 2.8.以记录为单位的I/O函数 2.9.格式化I/O函数 2.10.C标准库的I/O缓冲区 3.数值字符串转换函数 4.分配内存的函数 5.本章综合练习 26.链表、二叉树和哈希表 1.链表 1.1.单链表 1.2.双向链表 1.3.静态链表 2.二叉树 2.1.二叉树的基本概念 2.2.排序二叉树 3.哈希表 27.本阶段总结 III.Li n u x 系统编程 28.文件与I/O 1.汇编程序的He l l o w o r l d 2.C标准I/O库函数与Un b u f f e r e d I/O函数 3.o p e n/c l o s e 4.r e a d/w r i
12、t e5.l s e e k 6.f c n t l 7.i o c t l 8.m m a p 29.文件系统 1.引言 2.e x t 2文件系统 2.1.总体存储布局 2.2.实例剖析 2.3.数据块寻址 2.4.文件和目录操作的系统函数 3.VFS 3.1.内核数据结构 3.2.d u p 和d u p 2函数 30.进程 1.引言 2.环境变量 3.进程控制 3.1.f o r k 函数 3.2.e x e c 函数 3.3.w a i t 和w a i t p i d 函数 4.进程间通信 4.1.管道 4.2.其它IPC机制 5.练习:实现简单的Sh e l l 31.Sh e
13、l l 脚本 1.She l l 的历史 2.Sh e l l 如何执行命令 2.1.执行交互式命令 2.2.执行脚本 3.Sh e l l 的基本语法 3.1.变量 3.2.文件名代换(Gl o b b i n g):*?3.3.命令代换:或$()3.4.算术代换:$()3.5.转义字符 3.6.单引号 3.7.双引号4.b a s h 启动脚本 4.1.作为交互登录Sh e l l 启动,或者使用-l o g i n 参数启动 4.2.以交互非登录Sh e l l 启动 4.3.非交互启动 4.4.以s h 命令启动 5.Sh e l l 脚本语法 5.1.条件测试:t e s t 5.2
14、.i f/t h e n/e l i f/e l s e/f i 5.3.c a s e/e s a c 5.4.f o r/d o/d o n e 5.5.w h i l e/d o/d o n e 5.6.位置参数和特殊变量 5.7.函数 6.Sh e l l 脚本的调试方法 32.正则表达式 1.引言 2.基本语法 3.s e d 4.a w k 5.练习:在C语言中使用正则表达式 33.信号 1.信号的基本概念 2.产生信号 2.1.通过终端按键产生信号 2.2.调用系统函数向进程发信号 2.3.由软件条件产生信号 3.阻塞信号 3.1.信号在内核中的表示 3.2.信号集操作函数 3.
15、3.s i g p r o c m a s k 3.4.s i g p e n d i n g 4.捕捉信号 4.1.内核如何实现信号的捕捉 4.2.s i g a c t i o n 4.3.p a u s e 4.4.可重入函数 4.5.s i g _a t o m i c _t 类型与v o l a t i l e 限定符 4.6.竞态条件与s i g s u s p e n d 函数 4.7.关于SIGCHLD信号 34.终端、作业控制与守护进程1.终端 1.1.终端的基本概念 1.2.终端登录过程 1.3.网络登录过程 2.作业控制 2.1.Se s s i o n 与进程组 2.2
16、.与作业控制有关的信号 3.守护进程 35.线程 1.线程的概念 2.线程控制 2.1.创建线程 2.2.终止线程 3.线程间同步 3.1.m u t ex 3.2.Co n d i t i o n Va r i a b l e 3.3.Se m a p h o r e 3.4.其它线程间同步机制 4.编程练习 36.TCP/IP协议基础 1.TCP/IP协议栈与数据包封装 2.以太网(RFC 894)帧格式 3.ARP数据报格式 4.IP数据报格式 5.IP地址与路由 6.UDP段格式 7.TCP协议 7.1.段格式 7.2.通讯时序 7.3.流量控制 37.s o c k e t 编程 1
17、.预备知识 1.1.网络字节序 1.2.s o c k e t 地址的数据类型及相关函数 2.基于TCP协议的网络程序 2.1.最简单的TCP网络程序 2.2.错误处理与读写控制2.3.把c l i e n t 改为交互式输入 2.4.使用f o r k 并发处理多个c l i e n t 的请求 2.5.s et s o c k o p t 2.6.使用s e l e c t 3.基于UDP协议的网络程序 4.UNIX Do m a i n So c k e t IPC 5.练习:实现简单的We b 服务器 5.1.基本HTTP协议 5.2.执行CGI程序 A.字符编码 1.ASCII码 2
18、.Un i c o d e 和UTF-8 3.在Li n u x C编程中使用Un i c o d e 和UTF-8 B.编译开发工具小结 1.g c c 常用选项 2.g c c 常见错误信息 3.b i n u t i l s 常用命令 C.GNU Fr e e Do c u m e n t a t i o n Li c e n s e Ve r s i o n 1.3,3 No v e m b e r 2008 参考书目 索引 下一页 历史历史 上一页 下一页p a g e 2历史本书改编和包含了以下两本书的部分章节,这两本书均以GNU Fr e e Do c u m e n t a t
19、 i o n Li c e n s e 发 布。Ho w To Th i n k Li k e A Co m p u t e r Sc i e n t i s t:Le a r n i n g w i t h C+作者Al l e n B.Do w n e y。原书由Gr e e n Te a Pr e s s 发行,可以 从h t t p:/w w w.g r e e n t e a p re s s.c o m/下载到。Pr o g r a m m i n g f r o m t h e Gr o u n d Up:An In t r o d u c t i o n t o Pr o g
20、r am m i n g u s i n g Li n u x As s e m b l y La n g u a g e 作者Jo n a t h a n Ba r t l e t t。原书由Ba r t l e t t Pu b l i s h i n g 发行,可以 从h t t p:/s a v a n n a h.n o n g n u.o r g/p r o j e c t s/p g u b o o k/下载到。上一页 Li n u x C编程一站式学习 下一页 前言起始页附录 C.GNU Fr e e Do c u m e n t a t i o n Li c e n s e
21、Ve r s i o n 1.3,3 No v e m b e r 2008e Do c u m e n t a t i o n Li c e n s e Ve r s i o n 1.3,3 No v e m b e r 200802,2007,2008 Fr e e So f t w a r e Fo u n d a t i o n,In c.p y a n d d i s t r i b u t e v e r b a t i m c o p i e s o f t h i s l i c e n s e d o c u m e n t,b u t c h a n g i n g i t
22、 i s n o t a l l o w e d.i s t o m a k e a m a n u a l,t e x t b o o k,o r o t h e r f u n c t i o n a l a n d u s e f u l d o c u m e n t fr e e i n t h e s e n s e o f f r e e d o m:t o a s s u r e e v e r y o n e t h e e f f e c t i v e f r e e d o m t o c o p y a n d r e d i s t r i b u t e i t,
23、w i t h o r w i t h o u t m o d i f y i n g i t,e i t h e r c o m m e r c i a l ly o r n o n c o m m e r c i a l l y.Se c o n d a r i l y,t h i s Li c e n s e p r e s e r v e s f o r t h e a u t h o r an d p u b l i s h e r a w a y t o g e t c r e d i t f o r t h e i r w o r k,w h i l e n o t b e i
24、n g c o n s i d e r ed r e s p o n s i b l e f o r m o d i f i c a t i o n s m a d e b y o t h e r s.o p y l e f t,w h i c h m e a n s t h a t d e r i v a t i v e w o r k s o f t h e d o c u m e n t m u s t t h e m s e l ve s b e f r e e i n t h e s a m e s e n s e.It c o m p l e m e n t s t h e GNU
25、 Ge n e r a l Pu b l i c Li c e n se,w h i c h i s a c o p y l e f t l i c e n s e d e s i g n e d f o r f r e e s o f t w a r e.n s e i n o r d e r t o u s e i t f o r m a n u a l s f o r f r e e s o f t w a r e,b e c a u s e f r e e s o f t w ar e n e e d s f r e e d o c u m e n t a t i o n:a f r
26、e e p r o g r a m s h o u l d c o m e w i t h m a n u a l s p r o v id i n g t h e s a m e f r e e d o m s t h a t t h e s o f t w a r e d o e s.Bu t t h i s Li c e n s e i s n o t l i mi t e d t o s o f t w a r e m a n u a l s;i t c a n b e u s e d f o r a n y t e x t u a l w o r k,r e g a r d l e
27、s s o f s u b j e c t m a t t e r o r w h e t h e r i t i s p u b l i s h e d a s a p r i n t e d b o o k.We r e c o m m en d t h i s Li c e n s e p r i n c i p a l l y f o r w o r k s w h o s e p u r p o s e i s i n s t r u c t i o n o r r e f er e n c e.EFINITIONS m a n u a l o r o t h e r w o r k
28、,i n a n y m e d i u m,t h a t c o n t a i n s a n o t i c e p la c e d b y t h e c o p y r i g h t h o l d e r s a y i n g i t c a n b e d i s t r i b u t e d u n d e r t h e t e r m s o f t h i s Li c e n s e.Su c h a n o t i c e g r a n t s a w o r l d-w i d e,r o y a l t y-f r e e l i c e n s e,
29、u n l i m i t e d i n d u r a t i o n,t o u s e t h a t w o r k u n d e r t h e c o n d i t i o n s s t a t e d h e r e i n.Th e Do c u m e n t,b e l o w,r e f e r s t o a n y s u c h m a n u a l o r w o r k.An y m e m b e r o f t h e p u b l i c i s a l i c e n s e e,a n d i s a d d r e s s e d a s
30、 y o u.Yo u a c c e p t t h e l i c e n se i f y o u c o p y,m o d i f y o r d i s t r i b u t e t h e w o r k i n a w a y r e q u i r i n g p e r m i s s i o n u n d e r c o p y r i g h t l a w.Do c u m e n t m e a n s a n y w o r k c o n t a i n i n g t h e Do c u m e n t o r a p o r t i o n o f i
31、 t,e i t h er c o p i e d v e r b a t i m,o r w i t h m o d i f i c a t i o n s a n d/o r t r a n s l a t e d i n t o a n o t h e r l an g u a g e.n a m e d a p p e n d i x o r a f r o n t-m a t t e r s e c t i o n o f t h e Do c u m e n t t h a t d e a l s e x c l us i v e l y w i t h t h e r e l a
32、 t i o n s h i p o f t h e p u b l i s h e r s o r a u t h o r s o f t h e Do c u m e n t t o t h e Do c u m e n t s o v e r a l l s u b j e c t (o r t o r e l a t e d m a t t e r s)a n d c o n t a i n s n o th i n g t h a t c o u l d f a l l d i r e c t l y w i t h i n t h a t o v e r a l l s u b j
33、 e c t.(Th u s,i f t h e Do c u m e n t i s i n p a r t a t e x t b o o k o f m a t h e m a t i c s,a Se c o n d a r y Se c t i o n m a y n o t e x p l a i n a n y m a t h e m a t i c s.)Th e r e l a t i o n s h i p c o u l d b e a m a t t e r o f h i s t o r i c a l c o n n e c t i o n w i t h t h
34、e s u b j e c t o r w i t h r e l a t e d m a t t e r s,o r o f l e g a l,c o m m e r ci a l,p h i l o s o p h i c a l,e t h i c a l o r p o l i t i c a l p o s i t i o n r e g a r d i n g t h e m.e c e r t a i n Se c o n d a r y Se c t i o n s w h o s e t i t l e s a r e d e s i g n a t e d,a s b e
35、 i n g t h o s e o f In v a r i a n t Se c t i o n s,i n t h e n o t i c e t h a t s a y s t h a t t h e Do c u m e n t i s r e l e a se d u n d e r t h i s Li c e n s e.If a s e c t i o n d o e s n o t f i t t h e a b o v e d e f i n i t i o n o f Sp a g e 3e c o n d a r y t h e n i t i s n o t a l
36、 l o w e d t o b e d e s i g n a t e d a s In v a r i a n t.Th e Do c u m e nt m a y c o n t a i n z e r o In v a r i a n t Se c t i o n s.If t h e Do c u m e n t d o e s n o t i d e n t i f y an y In v a r i a n t Se c t i o n s t h e n t h e r e a r e n o n e.a i n s h o r t p a s s a g e s o f t
37、e x t t h a t a r e l i s t e d,a s Fr o n t-Co v e r Te x t s o r Ba c k-Co v e r Te x t s,i n t h e n o t i c e t h a t s a y s t h a t t h e Do c u m e n t i s r e l e a s e d u n d e r th i s Li c e n s e.A Fr o n t-Co v e r Te x t m a y b e a t m o s t 5 w o r d s,a n d a Ba c k-Co v e r Te x t
38、 m a y b e a t m o s t 25 w o r d s.Do c u m e n t m e a n s a m a c h i n e i n a f o r m a t w h o s e s p e c i f i c a t i o n i s a v a i l a b l e t o th e g e n e r a l p u b l i c,t h a t i s s u i t a b l e f o r r e v i s i n g t h e d o c u m e n t s t r a i g h t f o r wa r d l y w i t h
39、 g e n e r i c t e x t e d i t o r s o r (f o r i m a g e s c o m p o s e d o f p i x e l s)g e n e r i c p a i n t p r o g r a m s o r (f o r d r a w i n g s)s o m e w i d e l y a v a i l a b l e d r a w i n g e d i t o r,a nd t h a t i s s u i t a b l e f o r i n p u t t o t e x t f o r m a t t e
40、r s o r f o r a u t o m a t i c t r a n s l a t io n t o a v a r i e t y o f f o r m a t s s u i t a b l e f o r i n p u t t o t e x t f o r m a t t e r s.A c o p y ma d e i n a n o t h e r w i s e Tr a n s p a r e n t f i l e f o r m a t w h o s e m a r k u p,o r a b s e n c e o f m ar k u p,h a s
41、b e e n a r r a n g e d t o t h w a r t o r d i s c o u r a g e s u b s e q u e n t m o d i f i c a t i o n b y r e a d e r s i s n o t Tr a n s p a r e n t.An i m a g e f o r m a t i s n o t Tr a n s p a r e n t i f u s e d f or a n y s u b s t a n t i a l a m o u n t o f t e x t.A c o p y t h a t
42、i s n o t Tr a n s p a r e n t i s c a l le d Ot s f o r Tr a n s p a r e n t c o p i e s i n c l u d e p l a i n ASCII w i t h o u t m a r k u p,Te x i n f o i n pu t f o r m a t,La Te X i n p u t f o r m a t,SGML o r XML u s i n g a p u b l i c l y a v a i l a b l e DTD,a n d s t a n d a r d-c o n
43、 f o r m i n g s i m p l e HTML,Po s t Sc r i p t o r PDF d e s i g n e d f o r h u m a n m o d i f i c a t i o n.Ex a m p l e s o f t r a n s p a r e n t i m a g e f o r m a t s i n c l u d e PNG,XCF a n d JPG.Op a q u e f o r m a t s i n c l u d e p r o p r i e t a r y f o r m a t s t h a t c a n
44、b e r e a d a n d e d i t e d o n l y b y p r o p r i e t a r y w o r d p r o c e s s o r s,SGML o r XML f o r w h i c h t h e DTD a n d/o r p r o c e s s i n g t o o l s a r e n o t g e n e r a l l y a v a i l a b l e,a n d t h e m a c h i n e-g e n e r a t e d HTML,Po s t Sc r i p t o r PDF p r o
45、d u c e d b y s o m e w o r d p r o c e s s o r s f o r o u t p u t p u r p o s es o n l y.a p r i n t e d b o o k,t h e t i t l e p a g e i t s e l f,p l u s s u c h f o l l o w i n g p a g e s as a r e n e e d e d t o h o l d,l e g i b l y,t h e m a t e r i a l t h i s Li c e n s e r e q u i r e s
46、 t o a p p e ar i n t h e t i t l e p a g e.Fo r w o r k s i n f o r m a t s w h i c h d o n o t h a v e a n y t i t l e p a g e a s s u c h,Ti t l e Pa g e m e a n s t h e t e x t n e a r t h e m o s t p r o m i n e n t a p p e a r a n c e of t h e w o r k s t i t l e,p r e c e d i n g t h e b e g
47、i n n i n g o f t h e b o d y o f t h e t e x t.p e r s o n o r e n t i t y t h a t d i s t r i b u t e s c o p i e s o f t h e Do c u m e n t t o t h e p u b l i c.a n s a n a m e d s u b u n i t o f t h e Do c u m e n t w h o s e t i t l e e i t h e r i s p r e c i s e l y XYZ or c o n t a i n s X
48、YZ i n p a r e n t h e s e s f o l l o w i n g t e x t t h a t t r a n s l a t e s XYZ i n a n o t h er l a n g u a g e.(He r e XYZ s t a n d s f o r a s p e c i f i c s e c t i o n n a m e m e n t i o n e d b e l o w,s u c h a s Ac k n o w l e d g e m e n t s,De d i c a t i o n s,En d o r s e m e n
49、 t s,o r Hi s t o r y.)To Pr e s e r v e t h e Ti t l e o f s u c h a s e c t i o n w h e n y o u m o d i f y t h e Do c u m e n t m e an s t h a t i t r e m a i n s a s e c t i o n En t i t l e d XYZ a c c o r d i n g t o t h i s d e f i n i t i o n.Wa r r a n t y Di s c l a i m e r s n e x t t o t
50、 h e n o t i c e w h i c h s t a t e s t h a t t h i s Li c e n s e a p pl i e s t o t h e Do c u m e n t.Th e s e Wa r r a n t y Di s c l a i m e r s a r e c o n s i d e r e d t o b e i n c lu d e d b y r e f e r e n c e i n t h i s Li c e n s e,b u t o n l y a s r e g a r d s d i s c l a i m i n g