C程序设计(基于Linux平台)(微课版)

C程序设计(基于Linux平台)(微课版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2023-08
版次: 1
ISBN: 9787302637318
定价: 59.00
装帧: 其他
开本: 16开
纸张: 胶版纸
  • 本书以“学完C语言之后知道能做什么”为编写目标,共包括9章,分别是Linux C语言程序设计、C语言基础Ⅰ、C语言基础Ⅱ、链表、C标准库、Linux系统调用、Socket编程、Pthreads编程和GTK图形界面编程。其中,C语言基础Ⅰ、C语言基础Ⅱ、C标准库和Linux系统调用为本书最基础、最重要的四章,全面介绍了标准C语言的基本语法和Linux系统调用编程。其他章节告诉读者C语言具体能做什么。本书坚守“空谈无用,给我看代码”(Linux之父Linus Torvalds所言)的信条,通过正确无误的示例代码向读者展示C语言的具体用法。本书内容实用、结构清晰、图文并茂,力求让读者可以饶有兴趣地学习Linux C语言编程。 本书适合作为高等学校各专业的C语言程序设计课程教材,也可作为从事计算机相关工作的科技人员、计算机爱好者及各类自学人员的参考书。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。 张同光,副教授,计算机博士,毕业于北京邮电大学。主要从事计算机方面的教学及科研工作,发表SCI、EI等学术论文30余篇,主编教材近20本,主持或参与省部级以上项目6个。对Linux操作系统有深入且全面的研究和应用。使用C/C  等语言开发过若干个横向项目。讲授过的计算机专业课程有:《Linux 0.11内核分析》、《Linux操作系统》、《嵌入式软件开发基础》、《Linux C编程》、《Linux网络服务与编程》、《Linux驱动程序设计》、《嵌入式软件开发高级》、《软件工程》、《C  程序设计》、《微机原理》、《计算机网络原理》、《计算机专业英语》、《操作系统原理》、《离散数学》、《计算机组成原理》、《单片机原理》、《C程序设计》、《数据结构》、《汇编语言》、《网络安全技术》等。 第1章Linux C语言程序设计1

    1.1C语言1

    1.1.1C语言简介1

    1.1.2C语言发展历史2

    1.1.3C语言特点2

    1.2Linux简介3

    1.3Linux C语言程序设计简介4

    1.3.1Linux应用编程、系统编程和内核编程4

    1.3.2Linux图形界面编程4

    1.4Linux C语言编程环境5

    1.4.1安装Ubuntu Linux虚拟机5

    1.4.2gedit、vim和nano5

    1.4.3C语言编译器及集成开发环境6

    1.4.4编写Hello World程序7

    1.5使用gcc编译程序7

    1.6使用make和Makefile构建程序9

    1.7使用cmake和CMakeLists.txt构建程序15

    1.8完整的编译过程17

    1.9习题18第2章C语言基础Ⅰ21

    2.1数据21

    2.1.1数据类型21

    2.1.2常量23

    2.1.3变量和标识符25

    2.1.4数据类型转换26

    2.1.5转义字符(转义序列)28

    2.2运算符29

    2.2.1运算符和表达式29

    2.2.2算术运算312.2.3赋值运算32

    2.2.4关系运算32

    2.2.5逻辑运算符33

    2.2.6条件运算符33

    2.2.7逗号运算符34

    2.2.8sizeof运算符与typedef类型声明34

    2.2.9位运算35

    2.2.10复合赋值运算符36

    2.3结构化程序设计37

    2.3.1顺序结构37

    2.3.2分支结构38

    2.3.3循环结构40

    2.4输入/输出44

    2.4.1标准输出函数printf44

    2.4.2标准输入函数scanf47

    2.5数组49

    2.5.1一维数组49

    2.5.2二维数组50

    2.5.3一维字符数组51

    2.5.4一维字符数组的输入/输出52

    2.5.5字符串处理函数53

    2.5.6二维字符数组55

    2.6习题56第3章C语言基础Ⅱ60

    3.1函数60

    3.1.1函数定义和声明60

    3.1.2函数调用及参数传递61

    3.1.3函数的嵌套与递归65

    3.1.4回调函数66

    3.1.5return语句67

    3.1.6全局变量、局部变量和作用域67

    3.1.7变量的存储类别及生存期68

    3.1.8内部函数和外部函数70

    3.2预处理71

    3.2.1预处理的步骤71

    3.2.2宏定义和内联函数72

    3.2.3条件编译74

    3.2.4文件包含74

    3.3指针76

    3.3.1指针的基本运算76

    3.3.2指针与数组80

    3.3.3指针与const限定符82

    3.3.4指针与字符串84

    3.3.5指针函数与函数指针84

    3.3.6再讲回调函数85

    3.3.7可变参数87

    3.3.8二级指针与多级指针89

    3.3.9指针数组和数组指针90

    3.3.10动态内存管理91

    3.4结构体、共用体和枚举93

    3.4.1结构体93

    3.4.2位域94

    3.4.3共用体95

    3.4.4枚举96

    3.5零长数组、变长数组和动态数组98

    3.6编码风格与缩进工具indent100

    3.7习题102第4章链表106

    4.1单向链表106

    4.1.1单链表结构与链表结点类型106

    4.1.2创建单链表107

    4.1.3插入结点108

    4.1.4删除结点109

    4.1.5读取结点109

    4.1.6查找结点110

    4.1.7打印单链表110

    4.1.8逆转单链表111

    4.1.9构建单循环链表111

    4.1.10销毁单链表111

    4.1.11主函数及测试结果112

    4.2双向链表113

    4.2.1双链表结构与链表结点类型113

    4.2.2创建双链表114

    4.2.3插入结点115

    4.2.4删除结点116

    4.2.5读取结点116

    4.2.6查找结点117

    4.2.7打印双链表117

    4.2.8逆转双链表118

    4.2.9构建双循环链表118

    4.2.10销毁双循环链表119

    4.2.11主函数及测试结果119

    4.3内核链表120

    4.3.1list_head120

    4.3.2offsetof、container_of和list_entry121

    4.3.3链表初始化122

    4.3.4插入结点122

    4.3.5删除结点123

    4.3.6替换结点123

    4.3.7移动结点124

    4.3.8判断函数124

    4.3.9合并结点125

    4.3.10遍历链表126

    4.3.11用户空间使用内核链表126

    4.4习题128第5章C标准库130

    5.1C语言标准和glibc130

    5.2标准输入/输出函数库(stdio.h)132

    5.2.1fopen/fclose132

    5.2.2stdin/stdout/stderr134

    5.2.3errno与perror函数135

    5.2.4以字节为单位的I/O函数136

    5.2.5以字符串为单位的I/O函数138

    5.2.6以记录为单位的I/O函数139

    5.2.7格式化读写文件141

    5.2.8操作读写位置的函数142

    5.2.9FILE结构体及I/O缓冲区144

    5.3标准工具函数库(stdlib.h)147

    5.3.1动态内存分配与释放147

    5.3.2整数算术149

    5.3.3随机数150

    5.3.4数值字符串转换151

    5.3.5宽字符和多字节字符转换152

    5.4字符串处理函数库(string.h)156

    5.4.1初始化字符串156

    5.4.2取字符串的长度157

    5.4.3复制字符串157

    5.4.4比较字符串159

    5.4.5搜索字符串160

    5.4.6连接字符串161

    5.4.7分割字符串161

    5.4.8本地函数163

    5.5字符处理函数库(ctype.h)165

    5.6数学函数库(math.h)167

    5.7学生信息管理系统的设计与实现169

    5.7.1系统设计要求170

    5.7.2系统设计170

    5.7.3函数设计170

    5.7.4参考程序173

    5.7.5运行结果178

    5.8习题179第6章Linux系统调用182

    6.1C库函数和Linux系统调用182

    6.2进程管理184

    6.3进程间通信186

    6.4exec函数族189

    6.5文件管理192

    6.6习题199第7章Socket编程201

    7.1Socket基本概念201

    7.1.1Socket简介201

    7.1.2网络字节序与主机字节序202

    7.1.3Socket地址结构203

    7.1.4地址转换函数205

    7.1.5C/S架构206

    7.2基于TCP的网络程序207

    7.2.1简单C/S应用程序的设计207

    7.2.2交互式C/S应用程序的设计213

    7.2.3简单聊天室应用程序的设计(select)215

    7.2.4聊天室应用程序的设计(select)220

    7.2.5简单C/S应用程序的设计(epoll)228

    7.3基于UDP的网络程序233

    7.3.1简单C/S应用程序的设计233

    7.3.2简单聊天室应用程序的设计236

    7.4原始套接字编程239

    7.5UDS242

    7.6习题244第8章Pthreads编程246

    8.1Pthreads概述246

    8.1.1Linux进程和线程246

    8.1.2Linux线程模型247

    8.1.3Pthreads简介248

    8.2Pthreads函数248

    8.2.1创建线程248

    8.2.2线程同步与互斥252

    8.3Pthreads编程示例255

    8.3.1读者写者255

    8.3.2生产者消费者258

    8.3.3哲学家就餐259

    8.4习题261第9章GTK图形界面编程263

    9.1GTK简介263

    9.2GLib简介264

    9.3信号和回调函数264

    9.4GTK控件267

    9.4.1容器控件267

    9.4.2非容器控件267

    9.5GTK图形界面编程268

    9.5.1Hello World268

    9.5.2GtkGrid270

    9.5.3Custom Drawing271

    9.5.4用GtkBuilder创建界面274

    9.5.5Cambalache277

    9.6GTK图形界面聊天室280

    9.6.1聊天室服务器端281

    9.6.2聊天室客户端285

    9.6.3测试294

    9.7习题295附录ASCII码表297参考文献298
  • 内容简介:
    本书以“学完C语言之后知道能做什么”为编写目标,共包括9章,分别是Linux C语言程序设计、C语言基础Ⅰ、C语言基础Ⅱ、链表、C标准库、Linux系统调用、Socket编程、Pthreads编程和GTK图形界面编程。其中,C语言基础Ⅰ、C语言基础Ⅱ、C标准库和Linux系统调用为本书最基础、最重要的四章,全面介绍了标准C语言的基本语法和Linux系统调用编程。其他章节告诉读者C语言具体能做什么。本书坚守“空谈无用,给我看代码”(Linux之父Linus Torvalds所言)的信条,通过正确无误的示例代码向读者展示C语言的具体用法。本书内容实用、结构清晰、图文并茂,力求让读者可以饶有兴趣地学习Linux C语言编程。 本书适合作为高等学校各专业的C语言程序设计课程教材,也可作为从事计算机相关工作的科技人员、计算机爱好者及各类自学人员的参考书。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。
  • 作者简介:
    张同光,副教授,计算机博士,毕业于北京邮电大学。主要从事计算机方面的教学及科研工作,发表SCI、EI等学术论文30余篇,主编教材近20本,主持或参与省部级以上项目6个。对Linux操作系统有深入且全面的研究和应用。使用C/C  等语言开发过若干个横向项目。讲授过的计算机专业课程有:《Linux 0.11内核分析》、《Linux操作系统》、《嵌入式软件开发基础》、《Linux C编程》、《Linux网络服务与编程》、《Linux驱动程序设计》、《嵌入式软件开发高级》、《软件工程》、《C  程序设计》、《微机原理》、《计算机网络原理》、《计算机专业英语》、《操作系统原理》、《离散数学》、《计算机组成原理》、《单片机原理》、《C程序设计》、《数据结构》、《汇编语言》、《网络安全技术》等。
  • 目录:
    第1章Linux C语言程序设计1

    1.1C语言1

    1.1.1C语言简介1

    1.1.2C语言发展历史2

    1.1.3C语言特点2

    1.2Linux简介3

    1.3Linux C语言程序设计简介4

    1.3.1Linux应用编程、系统编程和内核编程4

    1.3.2Linux图形界面编程4

    1.4Linux C语言编程环境5

    1.4.1安装Ubuntu Linux虚拟机5

    1.4.2gedit、vim和nano5

    1.4.3C语言编译器及集成开发环境6

    1.4.4编写Hello World程序7

    1.5使用gcc编译程序7

    1.6使用make和Makefile构建程序9

    1.7使用cmake和CMakeLists.txt构建程序15

    1.8完整的编译过程17

    1.9习题18第2章C语言基础Ⅰ21

    2.1数据21

    2.1.1数据类型21

    2.1.2常量23

    2.1.3变量和标识符25

    2.1.4数据类型转换26

    2.1.5转义字符(转义序列)28

    2.2运算符29

    2.2.1运算符和表达式29

    2.2.2算术运算312.2.3赋值运算32

    2.2.4关系运算32

    2.2.5逻辑运算符33

    2.2.6条件运算符33

    2.2.7逗号运算符34

    2.2.8sizeof运算符与typedef类型声明34

    2.2.9位运算35

    2.2.10复合赋值运算符36

    2.3结构化程序设计37

    2.3.1顺序结构37

    2.3.2分支结构38

    2.3.3循环结构40

    2.4输入/输出44

    2.4.1标准输出函数printf44

    2.4.2标准输入函数scanf47

    2.5数组49

    2.5.1一维数组49

    2.5.2二维数组50

    2.5.3一维字符数组51

    2.5.4一维字符数组的输入/输出52

    2.5.5字符串处理函数53

    2.5.6二维字符数组55

    2.6习题56第3章C语言基础Ⅱ60

    3.1函数60

    3.1.1函数定义和声明60

    3.1.2函数调用及参数传递61

    3.1.3函数的嵌套与递归65

    3.1.4回调函数66

    3.1.5return语句67

    3.1.6全局变量、局部变量和作用域67

    3.1.7变量的存储类别及生存期68

    3.1.8内部函数和外部函数70

    3.2预处理71

    3.2.1预处理的步骤71

    3.2.2宏定义和内联函数72

    3.2.3条件编译74

    3.2.4文件包含74

    3.3指针76

    3.3.1指针的基本运算76

    3.3.2指针与数组80

    3.3.3指针与const限定符82

    3.3.4指针与字符串84

    3.3.5指针函数与函数指针84

    3.3.6再讲回调函数85

    3.3.7可变参数87

    3.3.8二级指针与多级指针89

    3.3.9指针数组和数组指针90

    3.3.10动态内存管理91

    3.4结构体、共用体和枚举93

    3.4.1结构体93

    3.4.2位域94

    3.4.3共用体95

    3.4.4枚举96

    3.5零长数组、变长数组和动态数组98

    3.6编码风格与缩进工具indent100

    3.7习题102第4章链表106

    4.1单向链表106

    4.1.1单链表结构与链表结点类型106

    4.1.2创建单链表107

    4.1.3插入结点108

    4.1.4删除结点109

    4.1.5读取结点109

    4.1.6查找结点110

    4.1.7打印单链表110

    4.1.8逆转单链表111

    4.1.9构建单循环链表111

    4.1.10销毁单链表111

    4.1.11主函数及测试结果112

    4.2双向链表113

    4.2.1双链表结构与链表结点类型113

    4.2.2创建双链表114

    4.2.3插入结点115

    4.2.4删除结点116

    4.2.5读取结点116

    4.2.6查找结点117

    4.2.7打印双链表117

    4.2.8逆转双链表118

    4.2.9构建双循环链表118

    4.2.10销毁双循环链表119

    4.2.11主函数及测试结果119

    4.3内核链表120

    4.3.1list_head120

    4.3.2offsetof、container_of和list_entry121

    4.3.3链表初始化122

    4.3.4插入结点122

    4.3.5删除结点123

    4.3.6替换结点123

    4.3.7移动结点124

    4.3.8判断函数124

    4.3.9合并结点125

    4.3.10遍历链表126

    4.3.11用户空间使用内核链表126

    4.4习题128第5章C标准库130

    5.1C语言标准和glibc130

    5.2标准输入/输出函数库(stdio.h)132

    5.2.1fopen/fclose132

    5.2.2stdin/stdout/stderr134

    5.2.3errno与perror函数135

    5.2.4以字节为单位的I/O函数136

    5.2.5以字符串为单位的I/O函数138

    5.2.6以记录为单位的I/O函数139

    5.2.7格式化读写文件141

    5.2.8操作读写位置的函数142

    5.2.9FILE结构体及I/O缓冲区144

    5.3标准工具函数库(stdlib.h)147

    5.3.1动态内存分配与释放147

    5.3.2整数算术149

    5.3.3随机数150

    5.3.4数值字符串转换151

    5.3.5宽字符和多字节字符转换152

    5.4字符串处理函数库(string.h)156

    5.4.1初始化字符串156

    5.4.2取字符串的长度157

    5.4.3复制字符串157

    5.4.4比较字符串159

    5.4.5搜索字符串160

    5.4.6连接字符串161

    5.4.7分割字符串161

    5.4.8本地函数163

    5.5字符处理函数库(ctype.h)165

    5.6数学函数库(math.h)167

    5.7学生信息管理系统的设计与实现169

    5.7.1系统设计要求170

    5.7.2系统设计170

    5.7.3函数设计170

    5.7.4参考程序173

    5.7.5运行结果178

    5.8习题179第6章Linux系统调用182

    6.1C库函数和Linux系统调用182

    6.2进程管理184

    6.3进程间通信186

    6.4exec函数族189

    6.5文件管理192

    6.6习题199第7章Socket编程201

    7.1Socket基本概念201

    7.1.1Socket简介201

    7.1.2网络字节序与主机字节序202

    7.1.3Socket地址结构203

    7.1.4地址转换函数205

    7.1.5C/S架构206

    7.2基于TCP的网络程序207

    7.2.1简单C/S应用程序的设计207

    7.2.2交互式C/S应用程序的设计213

    7.2.3简单聊天室应用程序的设计(select)215

    7.2.4聊天室应用程序的设计(select)220

    7.2.5简单C/S应用程序的设计(epoll)228

    7.3基于UDP的网络程序233

    7.3.1简单C/S应用程序的设计233

    7.3.2简单聊天室应用程序的设计236

    7.4原始套接字编程239

    7.5UDS242

    7.6习题244第8章Pthreads编程246

    8.1Pthreads概述246

    8.1.1Linux进程和线程246

    8.1.2Linux线程模型247

    8.1.3Pthreads简介248

    8.2Pthreads函数248

    8.2.1创建线程248

    8.2.2线程同步与互斥252

    8.3Pthreads编程示例255

    8.3.1读者写者255

    8.3.2生产者消费者258

    8.3.3哲学家就餐259

    8.4习题261第9章GTK图形界面编程263

    9.1GTK简介263

    9.2GLib简介264

    9.3信号和回调函数264

    9.4GTK控件267

    9.4.1容器控件267

    9.4.2非容器控件267

    9.5GTK图形界面编程268

    9.5.1Hello World268

    9.5.2GtkGrid270

    9.5.3Custom Drawing271

    9.5.4用GtkBuilder创建界面274

    9.5.5Cambalache277

    9.6GTK图形界面聊天室280

    9.6.1聊天室服务器端281

    9.6.2聊天室客户端285

    9.6.3测试294

    9.7习题295附录ASCII码表297参考文献298
查看详情
相关图书 / 更多
C程序设计(基于Linux平台)(微课版)
C程序设计试题汇编(第四版)
谭浩强、鲍有文、周海燕、赵重敏、鞠慧敏
C程序设计(基于Linux平台)(微课版)
C程序设计与问题求解
刘杰;鞠成东;丛晓红
C程序设计(基于Linux平台)(微课版)
C程序设计
朱晓燕 主编;陈刚 程欣宇 沈宁 李支成 朱家成 副主编
C程序设计(基于Linux平台)(微课版)
C程序设计教程(第4版)学习辅导
谭浩强
C程序设计(基于Linux平台)(微课版)
C程序设计与问题求解实践教程
刘杰;徐丽;孟宇龙
C程序设计(基于Linux平台)(微课版)
C程序设计与案例教程
蒋秀莲;乔淑云
C程序设计(基于Linux平台)(微课版)
C程序设计习题解析及实践指导
郭伟青
C程序设计(基于Linux平台)(微课版)
C程序设计上机指导与习题集
王琳艳 主编;刘警 汪飞 王继克 副主编
C程序设计(基于Linux平台)(微课版)
C程序设计教程(第4版)()
谭浩强 著
C程序设计(基于Linux平台)(微课版)
C程序设计
张朋 张丕振 主编;顾健 马玲 孟庆新 刘晓慧 范彬 宋丹茹 周本海 赵越 副主编
C程序设计(基于Linux平台)(微课版)
C程序设计基础(英文版)
汪芳
C程序设计(基于Linux平台)(微课版)
C程序设计(第2版)(大学计算机基础教育特色教材系列)
姜学锋、刘君瑞 著
您可能感兴趣 / 更多
C程序设计(基于Linux平台)(微课版)
Linux C语言程序设计(微课视频版)
张同光;田文强;荆春棋;田乔梅;陈明
C程序设计(基于Linux平台)(微课版)
Ubuntu Linux操作系统(微课视频版)
张同光 洪双喜 田乔梅 宋丽丽 高雪霞 温文博
C程序设计(基于Linux平台)(微课版)
计算机安全技术(第3版)()
张同光、田乔梅、武东辉、高铁梁、司艳芳 著
C程序设计(基于Linux平台)(微课版)
Linux操作系统实用教程(Fedora)
张同光 田文强 石庆民 安子强 高雪霞 田乔梅
C程序设计(基于Linux平台)(微课版)
信息安全技术实用教程(第4版)
张同光
C程序设计(基于Linux平台)(微课版)
Linux操作系统(第2版RHEL8/CentOS8)/高等院校计算机任务驱动教改教材
张同光、张涛、刘春红、陈明、王晓兵 编
C程序设计(基于Linux平台)(微课版)
嵌入式系统开发实用教程/高职高专计算机专业精品教材
张同光、赵芳、马玉磊 编
C程序设计(基于Linux平台)(微课版)
Linux基础教程(第2版)/21世纪高职高专规划教材·计算机应用系列
张同光 编
C程序设计(基于Linux平台)(微课版)
计算机安全技术
张同光 编
C程序设计(基于Linux平台)(微课版)
高职高专计算机系列规划教材:嵌入式系统实用教程
张同光 编
C程序设计(基于Linux平台)(微课版)
高等应用型人才培养规划教材:信息安全技术实用教程
张同光 编
C程序设计(基于Linux平台)(微课版)
Visual C++6.0实训教程——21世纪高职高专系列教材
张同光 编;朱家义