Linux环境下C程序设计

开放的Linux平台,应用广泛的C语言,二者的有机结合
分享 推荐 2 收藏 29 阅读 2.2K
黄继海 (作者) 978-7-115-50674-0

关于本书的内容有任何问题,请联系 张斌

(1)主要特点:理论和实践相结合、内容全面而翔实、脱出实际工作涉及的网络内容;
(2)主编在企业有多年的软件开发和管理工作;是河南省计算机协会理事;
(3)与竞争图书相比:本教材加强讲解了相关知识点如何在实际工作使用及应用场合;
(4)本书不仅适合作为高校教材,而且可以作为工程技术人员的参考书;

内容摘要

本书由浅入深,全面细致地讲述了Linux环境C程序设计,从基本概念到实际操作,从原理到具体实践,涵盖了Linux环境下C程序设计的所有重要知识点。第1章介绍Linux操作系统的基本知识和Linux常用命令;第2章介绍常用C语言库函数;第3章介绍Linux的开发环境;第4章至第9章介绍Linux系统编程,包括文件I/O、标准I/O库、进程和信号以及进程间通信等方面的知识;第10章介绍网络编程;第11章介绍GTK+编程。

目录

第 一章Linux操作系统基础 1
1.1 GNU简介 1
1.2 Linux简介 1
1.2.1 Linux的内核与发行版 2
1.2.2 Linux系统的特点 3
1.3 Shell命令概述 4
1.3.1 目录的组织结构 4
1.3.2用户主目录和文件的路径 5
1.3.3 Linux命令的语法结构 6
1.3.4 Shell命令的分类 6
1.3.5 联机帮助 6
1.4 文件与目录操作 7
1.4.1目录操作 7
1.4.2 文件/目录的创建 10
1.4.3 文件/目录的删除 12
1.4.4 文件/目录的复制 13
1.4.5 文件/目录的属性修改 15
1.5 系统运行常用命令 21
1.5.1 进程操作 21
1.5.2 管道和重定向 23
1.6 查找操作命令 25
1.6.1 grep 25
1.6.2 find 25
1.7 其他常用命令 27
1.7.1 文件系统操作 27
1.7.2 用户管理 32
1.7.3 网络相关命令 41
1.8 Linux应用软件包管理 42
1.8.1应用软件包的分类 42
1.8.2 RPM软件包的管理 42
1.9 项目实训一:linux基本命令 43
1.10 本章小结 45
1.11习题一 46
第 2章 常用的C语言库函数 48
2.1 字符和字符串操作函数 48
2.1.1 字符操作函数 48
2.1.2 字符串操作函数 51
2.2 内存管理函数 64
2.2.1 动态内存分配函数 64
2.2.2 动态内存释放函数 67
2.2.3 memset函数 69
2.2.4 memcpy函数 69
2.2.5 memmove函数 70
2.3 日期与时间函数 76
2.3.1 time函数 76
2.3.2 localtime函数和gmtime 函数 76
2.3.3 asctime函数和ctime函数 78
2.4 随机函数 79
2.4.1 rand函数 79
2.4.2 srand函数 80
2.4.3 random函数和srandom函数 81
2.4.4 drand48函数和erand48函数 82
2.5 项目实训 83
2.6 本章小结 90
习题 90
第3章 编程环境 91
3.1概述 91
3.2 VIM编辑器 92
3.2.1 VIM工作模式 92
3.2.2 VIM操作流程 93
3.2.3 VIM常用命令 94
3.3 GCC编译器 97
3.3.1 GCC编译器简介 97
3.3.2 GCC编译过程 98
3.3.3 GCC常用选项介绍 100
3.2.4 库依赖原理 104
3.4 GDB程序调试器 105
3.4.1 在程序中加入调试信息 106
3.4.2 启动和退出GDB调试器 106
3.4.3 显示和查找程序源代码 107
3.4.4设置和管理断点 108
3.4.5 执行程序和获得帮助 108
3.4.6控制程序的执行 109
3.4.7查看和设置变量的值 109
3.5 Make工程管理器 110
3.5.1 Make工程管理概述 110
3.5.2 Makefile基本结构 111
3.5.3 Makefile变量 117
3.5.4 Makefile规则 119
3.6 项目实训:Makefile的编写 121
3.6.1实训描述 121
3.6.2编写流程 123
3.6.3 Make脚本的测试 125
3.7 本章小结 125
习题 125
第四章 文件操作 128
4.1 文件系统 128
4.1.1超级块 129
4.1.2索引节点 129
4.2 基于文件描述符的I/O 操作 129
4.2.1 文件的创建、打开与关闭 130
4.2.2 文件的读写操作 132
4.2.3 文件的定位 134
4.2.4 文件属性的修改 136
4.2.5 目录文件的操作 138
4.3项目实训四:日志管理功能 139
4.3.1实训描述 139
4.3.2实训要求 139
4.3.3实训参考 139
4.4 本章小结 141
4.5 习题四 141
第五章 标准I/O库 143
5.1 标准流的I/O 操作 143
5.2 流的打开和关闭 143
5.3 缓冲区的操作 144
5.4 直接输入输出 145
5.5 格式化输入输出 148
5.6 基于字符和行的输入输出 151
1.7 项目实训五:出错管理功能 154
5.7.1项目描述 154
5.7.2项目要求 154
5.7.3 实训参考 155
5.8 本章小结 156
5.9 习题五 156
第六章 进程控制 157
6.1 进程概述 157
6.1.1什么是进程 157
6.1.2进程状态 158
6.1.3 Linux进程环境 158
6.1.4进程的内存映像 159
6.2 进程控制 160
6.2.1 进程创建 160
6.2.2 进程等待 163
6.2.3 结束进程 165
6.2.4 system函数 169
6.3 项目实训六:进程的实现 170
6.3.1实训描述 170
6.3.2参考代码 170
6.3.3编译运行 171
6.4 本章小结 171
6.5 习题六 172
第七章 线程控制 173
7.1 线程控制 173
7.1.1 线程的创建 173
7.1.2 线程的终止 175
7.1.3 线程的同步 177
7.1.4 私有数据 182
7.2 项目实训七:线程的实现 185
7.2.1实训描述 185
7.2.2参考代码 185
7.2.3编译 186
7.3 本章小结 186
7.4 习题七 187
第八章 进程间通信 188
8.1 概述 188
8.2 共享内存 189
8.3 信号量 194
8.4 管道通信 201
8.4.1 管道的创建和关闭 201
8.4.2 管道的读写操作 201
8.5 命名管道 204
8.5.1 命名管道的创建 204
8.5.2 命名管道的使用 205
8.6 消息队列 209
8.6.1 消息队列的创建与打开 210
8.6.2 向消息队列中发送消息 211
8.6.3 从消息队列中接收消息 211
8.6.4 消息队列的控制 212
8.6.5 综合示例 212
8.7 项目实训八:进程之间通信功能的实现 218
8.7.1实训描述 218
8.7.2参考代码 218
8.7.3编译运行 219
8.8 本章小结 220
8.9 习题八 220
第九章 信号及信号处理 221
9.1 信号及其使用 221
9.1.1 Linux信号的产生 221
9.1.2信号的种类 221
9.1.3对信号的响应 224
9.2 信号处理 224
9.2.1信号的捕获与处理 224
9.2.2信号的屏蔽 225
9.2.3信号的发送 228
9.3 本章小结 230
9.4 项目实训:信号的处理 230
9.4.1实训描述 230
9.4.2参考代码 230
9.4.3编译运行 232
9.5 习题九 233
第十章 网络编程 234
10.1 网络编程的基本概念 234
10.1.1 IP地址 234
10.1.2 端口 234
10.1.3 域名 235
10.1.4 TCP和UDP 235
10.2 网络编程基础 235
10.2.1套接字的概念 235
10.2.3 Socket地址结构 236
10.3网络地址的转换 237
10.3.1主机字节序与网络字节序 237
10.3.2字节处理函数 238
10.3.3地址转换函数 238
10.3.4域名与IP地址转换 239
10.3 TCP通信编程 242
10.3.1 TCP通信原理 242
10.3.2 创建套接字 243
10.3.3 绑定套接字 244
10.3.4 在套接字上监听 244
10.3.5 接受连接 244
10.3.6 建立连接 245
10.3.7 数据通信 245
10.3.8 关闭连接 246
10.3.9 基于TCP套接口编程示例 246
10.4 UDP通信编程 251
10.4.1 UDP通信原理 251
10.4.2 数据通信 252
10.4.3 基于UDP套接口编程示例 253
10.5 本章小结 257
10.6 项目实训:局域网文件下载 257
10.6.1实训描述 257
10.6.2参考代码 257
10.6.3编译运行 262
10.7 习题十 263
第十一章 Gtk+图形界面编程 264
11.1 Linux图形界面开发 264
1.1.1 Linux图形用户环境 264
1.1.2 Gtk+简介 265
11.2 Gtk+程序结构 265
11.2.1 第 一个Gtk+程序 265
11.2.2 GTK+的数据类型 266
11.2.3 初始化GTK+ 266
11.2.4 创建和显示窗口/构件 267
11.2.5 GTK+的主循环 267
11.3 基本控件 268
11.3.1窗口 268
11.3.2标签 271
11.3.3按钮 273
11.3.4文本框 275
11.4 布局控件 276
11.4.1表格 276
11.4.2框 279
11.5 信号与事件 282
11.6常用控件 285
11.6.1下拉菜单 285
11.6.2 对话框 288
11.6 项目实训:贪吃蛇游戏 290
11.6.1任务描述 290
11.6.2设计思路 290
11.6.3模块结构 290
11.6.4界面设计 291
11.6.5设计描述 292
11.6.7游戏测试 298
11.6.8设计总结 299
11.7 本章小结 299
11.8 习题十一 299

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

郑州工程技术学院信息工程学院副教授,讲授课程《Linux环境下C程序设计》、《C程序设计》,主要研究项目及领域: 软件编程、计算机网络

推荐用户

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部