新書推薦:
《
Zemax光学设计从基础到实践
》
售價:HK$
132.2
《
全球化的黎明:亚洲大航海时代
》
售價:HK$
109.8
《
危局
》
售價:HK$
84.0
《
穿裙子的士:叶嘉莹传
》
售價:HK$
53.8
《
肌肤会说话 : 听懂自己肌肤的语言,呵护肌肤
》
售價:HK$
98.6
《
财富方程式
》
售價:HK$
77.3
《
知识社会史(下卷):从《百科全书》到“在线百科”
》
售價:HK$
99.7
《
我读巴芒:永恒的价值
》
售價:HK$
132.2
|
編輯推薦: |
Linux系统是当下主流的操作系统之一,越来越多的开发者学习Linux开发技术,特别是基于Linux系统上的C语言开发技术。《Linux C编程完全解密》全面介绍了Linux系统上C语言开发技术,大量实例贯穿全书,由浅入深地讲解力求使读者在学习后,能够全面掌握Linux平台下的开发技能。
|
內容簡介: |
《Linux C编程完全解密》以Red Hat 9.0 和Ubuntu 12.01 为平台,系统地介绍了Linux 操作系统下的各种shell 命令以及在此平台下进行C 语言开发的步骤和方法,并通过大量实例讲解在Linux 下进行C 语言开发的方法和技巧。 《Linux C编程完全解密》共13 章,包括Linux 操作系统概述,Linux 的基本操作,文本编辑器,Linux 下的C 语言开发基础,静态库和动态库,make 工程管理,文件编程,shell 脚本的开发,进程管理,进程间通信(IPC), POSIX 线程,Linux 网络编程,Linux 驱动程序和嵌入式基础。同时还配有综合项目实战环节的源代码, 使读者能够在此基础上举一反三,提升开发应用项目的能力。 《Linux C编程完全解密》结构合理、内容全面、深入浅出、通俗易懂,具有很强的参考性和实用性。可作为普通高等院校计算机及相关专业进行Linux 平台下C 语言程序设计的教材,也可作为程序开发员的参考用书。
|
關於作者: |
作者具有10年以上的linux C使用经验,对linux系统有较深的理解,熟悉linux应用程序设计和驱动程序设计。
|
目錄:
|
第1章 Linux操作系统概述1
1.1 认识Linux操作系统2
1.1.1 Linux操作系统发展背景2
1.1.2 Linux操作系统的特点2
1.1.3 Linux操作系统的应用现状 3
1.2 Linux C开发概述3
1.2.1 Linux C开发简介 3
1.2.2 IEEE POSIX4
1.2.3 Linux C 开发工具 4
1.3 小结4
习题4
第2章 Linux的基本操作 7
2.1 shell初体验8
2.1.1 虚拟终端 8
2.1.2 shell命令 8
2.2 shell常用命令 9
2.2.1 目录和文件操作命令9
2.2.2 文件归档及压缩 15
2.2.3 软件包的安装17
2.3 深入shell18
2.3.1 通配符 18
2.3.2 重定向 18
2.3.3 管道19
2.3.4 自动补全 19
2.3.5 用户操作命令20
2.3.6 关机与重启21
2.4 硬链接与软链接 22
2.4.1 硬链接 23
2.4.2 软链接 24
2.5 小结24
习题25
第3章 文本编辑器27
3.1 vi编辑器概述 28
3.1.1 vi的三种工作模式 28
3.1.2 vi的初体验28
3.2 命令模式下的文本块操作29
3.2.1 行的定位 29
3.2.2 文本块的复制、移动和删除30
3.2.3 撤销和重复31
3.2.4 字符串的查找31
3.3 末行模式下的常用操作 31
3.4 vi环境定制32
3.5 小结33
习题33
第4章 Linux下的C语言开发基础 35
4.1 C语言开发的基本步骤 36
4.1.1 gcc编译工具36
4.1.2 gcc 编译过程详解 37
4.1.3 gcc 编译多文件39
4.2 头文件 40
4.2.1 头文件的编辑和使用40
4.2.2 进一步理解头文件 42
4.2.3 头文件重复包含 43
4.3 gdb 调试工具44
4.3.1 gdb 调试基本命令 44
4.3.2 gdb 初体验 46
4.3.3 gdb 的断点调试48
4.4 IDE 工具 CodeBlocks 51
4.4.1 CodeBlocks 的安装 51
4.4.2 CodeBlocks 的使用 52
4.5 小结55
习题55
第5 章 静态库和动态库 57
5.1 库的概述 58
5.1.1 为什么使用库58
5.1.2 库的特点 58
5.2 静态库 59
5.2.1 静态库的创建59
5.2.2 静态库的使用60
5.3 动态库 61
5.3.1 动态库的创建61
5.3.2 动态库的使用62
5.4 静态库和动态库的区别 62
5.4.1 实例测试 63
5.4.2 验证环节 63
5.5 综合举例 65
5.6 小结66
习题66
第6 章 make 工程管理69
6.1 make 概述70
6.1.1 make 命令和Makefile 文件 70
6.1.2 Makefile 文件编写 70
6.1.3 Makefile 文件中的变量72
6.1.4 Makefile 通配符73
6.1.5 Makefile 文件的默认规则74
6.1.6 Makefile 文件中的伪目标75
6.1.7 make 的条件执行 76
6.2 automake 的使用76
6.2.1 automake 生成Makefile步骤76
6.2.2 实例讲解 77
6.3 小结80
习题80
第7 章 Linux 下的文件编程 81
7.1 概述82
7.1.1 Linux 下的系统调用 82
7.1.2 基本IO 函数82
7.1.3 文件描述符83
7.2 基本IO 操作83
7.2.1 open 函数 84
7.2.2 close 函数 86
7.2.3 write 函数 87
7.2.4 read 函数 88
7.2.5 lseek 函数 90
7.3 文件锁 91
7.3.1 Linux 下的文件锁机制93
7.3.2 文件锁的使用93
7.3.3 实例讲解 94
7.4 目录操作 97
7.4.1 mkdir 函数 97
7.4.2 rmdir 函数 98
7.4.3 getcwd 函数99
7.4.4 opendir 函数99
7.4.5 readdir 函数100
7.4.6 closedir 函数101
7.5 项目实战 101
7.6 小结110
习题110
第8 章 shell 脚本的开发 113
8.1 shell 编程基础 114
8.2 管道和重定向114
8.2.1 输出重定向114
8.2.2 输入重定向115
8.2.3 管道115
8.3 shell 脚本的语法 116
8.3.1 变量117
8.3.2 程序结构 118
8.3.3 函数123
8.3.4 命令及其执行123
8.3.5 调试脚本 125
8.4 shell 脚本设计示例125
8.4.1 查看主机网卡流量 125
8.4.2 监控CPU 和内存的使用情况 126
8.4.3 查找日期为某一天 126
8.5 小结127
习题127
第9 章 进程管理129
9.1 进程概述 130
9.1.1 进程的概念130
9.1.2 进程ID 130
9.1.3 进程调度 131
9.2 进程控制 132
9.2.1 进程控制块132
9.2.2 进程创建函数fork 133
9.2.3 进程等待函数(wait)138
9.2.4 waitpid 函数139
9.2.5 vfork 函数 142
9.2.6 进程终止函数(exit)143
9.2.7 exec 函数 145
9.3 小结146
习题146
第10 章 进程间通信(IPC)149
10.1 进程通信概述 150
10.1.1 管道150
10.1.2 信号153
10.1.3 信号的产生方式 154
10.1.4 信号的处理方式 154
10.2 信号量 156
10.2.1 信号量定义157
10.2.2 信号量功能157
10.2.3 使用信号量164
10.3 共享内存167
10.3.1 认识共享内存167
10.3.2 共享内存函数168
10.4 消息队列173
10.4.1 消息队列概述174
10.4.2 消息队列函数176
10.4.3 消息队列编程实例 179
10.4.4 ATM 的实现183
10.5 小结189
习题189
第11 章 POSIX 线程191
11.1 认识线程192
11.2 多线程编程194
11.2.1 线程创建函数195
11.2.2 多线程中的线程等待198
11.2.3 线程专有数据199
11.2.4 保证多线程编程中函数的可重入性 202
11.3 线程的属性203
11.3.1 常用线程属性203
11.3.2 常用线程属性函数 205
11.4 线程的销毁206
11.5 线程的同步209
11.5.1 用信号量进行同步 209
11.5.2 用互斥量进行同步 211
11.6 聊天室的实现 214
11.7 小结219
习题219
第12 章 Linux 网络编程 221
12.1 网络编程常识 222
12.1.1 TCPIP 协议概述 222
12.1.2 IP 地址与端口223
12.1.3 网络字节序和主机字节序 224
12.2 简单的本地通信 225
12.2.1 socket 实现本地通信226
12.2.2 相关API 详解226
12.3 socket 实现网络通信 230
12.3.1 基于TCP 的网络编程230
12.3.2 相关API 详解230
12.3.3 基于UDP 的网络编程234
12.4 守护进程 237
12.4.1 守护进程概念237
12.4.2 守护进程的编写要点238
12.5 多客户通信242
12.6 小结245
习题246
第13 章 Linux 驱动程序和嵌入式基础 249
13.1 Linux 驱动程序与嵌入式开发的基础知识 250
13.1.1 嵌入式Linux 的特点250
13.1.2 嵌入式Linux 的系统开发平台251
13.1.3 嵌入式Linux 开发的一般流程251
13.1.4 嵌入式Linux 驱动程序252
13.2 Linux 驱动程序与嵌入式开发中的注意问题253
13.2.1 Linux 的内存空间划分253
13.2.2 Linux 的内存管理和IO寻址253
13.2.3 Linux 的时基问题 254
13.3 Linux 驱动程序和嵌入式开发的设备类型254
13.3.1 字符设备特点255
13.3.2 块设备特点255
13.4 Linux 嵌入式开发的应用特点255
13.4.1 常用的调试方法 255
13.4.2 可移植性问题256
13.5 小结256
习题257
附录 习题答案 259
|
內容試閱:
|
前言
Linux 系统基于开源软件思想,是当下最流行的操作系统之一。随着Linux 系统的发展和广泛应用,其已占据绝大多数嵌入式系统和PC 服务器的市场份额,且桌面系统的普及率也在逐年上升。越来越多的开发者希望了解Linux 系统开发技术,特别是基于Linux 系统上流行的C 语言开发技术。
本书全面介绍了Linux 系统上C 语言开发技术,大量实例贯穿全书,由浅入深,力求使读者在学习后,能够掌握Linux 平台下的开发技能,并通过大量的项目实战,培养综合实践能力。
本书特点
1. 提供Ubuntu 免安装文件和Red Hat 安装镜像
为了让读者更好地按照本书的内容进行学习,做到无障碍学习测试,作者提供了开发工具和环境,包括两个Linux 发行版本和VMware 10 的安装文件。
2. 配有大量实例源代码
为了让读者更加快速、直观地学习本书内容,在每个章节都安排了实例讲解。另外,一些重要章节的课后上机习题也附有源代码供读者参考。
3. 循序渐进,由浅入深
工欲善其事,必先利其器。为了方便读者学习,本书首先介绍了Linux 操作系统平台下终端命令的使用方法和技巧。在此基础上,学习如何在Linux 系统下进行C 语言的开发。通过基础实例讲解和项目实战逐步培养学习能力,能够举一反三,具备一定的应用开发能力。
4. 项目实战案例
本书安排了两个项目实战,分别是模拟ATM 功能和局域网内的聊天程序。项目实战旨在培养综合运用知识的能力,能够对所学知识进行有效整合,提高项目开发的能力和水平。
本书内容
第1章:介绍Linux操作系统的发展背景和特点。Linux系统是一个开放的操作系统,在学习的同时,可根据自身需要安装Linux操作系统,为实践各种开发技能打好基础。
第2章:介绍了Linux系统的基本操作,包括shell命令的基本使用、目录及文件的相关操作命令、软件包的安装等内容。
第3章:介绍了Linux平台下的vi文本编辑器,通过本章的学习,会使用该编辑器编写C源文件。
第4章:介绍了Linux系统下C语言开发步骤,包括编译C语言的编译器gcc基本概念及编译过程和IDE集成开发环境的安装和使用。
第5章:介绍了动态库和静态库的应用,包括库的概述,静态库和动态库的创建步骤以及通过实例讲解静态库和动态库的区别。
第6章:介绍了make工程管理,包括make工程管理的作用,如何为项目编写规则文件,automake的使用方法以及相关的实例讲解。
第7章:介绍了文件编程,包括基本的IO函数的使用方法和技巧,文件锁的概念和使用,以及ATM项目实战。
第8章:介绍了shell脚本的开发,包括shell编程基础和shell脚本的语法,为了更好地掌握本章内容,特别布置了shell脚本设计示例。
第9章:介绍了Linux系统下的进程管理,包括进程的概念,进程控制等。其中进程控制中主要介绍了进程创建函数fork、进程等待函数wait及waitpid函数的用法。
第10章:介绍了进程间的通信机制,包括管道、信号、信号量、共享内存、消息队列等通信机制的特点和应用,并进行了实例讲解。
第11章:介绍了POSIX线程,包括线程创建,线程等待,线程销毁和线程同步。本章最后通过项目实战聊天室的设计与实现,对本章内容进行了练习。
第12章:介绍了Linux下的网络编程的方法和步骤,包括网络编程的基础知识,socket实现本地通信和网络通信的编程思路和步骤,最后通过多客户通信的实例将本章内容与第9章内容结合运用,以提高综合运用能力。
第13章:介绍了Linux在嵌入式方向的应用,包括Linux驱动程序和嵌入式开发基础,嵌入式Linux开发的一般流程及开发中需要注意的问题,最后总结了Linux嵌入式开发的应用特点。
本书由唐山师范学院的闫敬、吴淑坤老师编写完成。书中实例代码经过严格测试可以直接运行。同时对参与本书代码录入、语法校正等工作的同事们表示由衷的感谢!
由于作者水平有限,时间仓促,书中难免有错误和不妥之处,敬请读者批评指正。
编 者
|
|