rar

Linux C程序设计王者归来

  • 1星
  • 日期: 2020-09-29
  • 大小: 123.92MB
  • 所需积分:0分
  • 下载次数:7
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: linux

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux C程序设计王者归来共28章,分6篇。第1篇Linux下C语言基础,介绍了Linux发展、控制结构、C语言中的函数、指针与字符串及C语言高级技术等;第2篇C语言开发环境,介绍了vi编辑器、gcc编译器、构建makefile文件和gdb调试器等;第3篇Linux进程操作,介绍了进程环境、进程控制、时间和日历历程、信号及信号处理、进程间通信、线程和线程高级操作等;第4篇Linux文件操作,介绍了文件I/O、文件管理、目录操作、特殊文件和基于流的I/O等;第5篇Linux网络编程,介绍了TCP和UDP协议、网络编程基础、网络编程进阶、实现文件传输程序实例和简单的Web服务器实例;第6篇介绍了shell脚本基础和脚本中的控制结构等。

本书由浅入深,全面细致地讲述了Linux环境C程序设计从基本概念到实际操作,从核心原理到具体实践,再到实际案例开发等内容,涵盖了LinuxC程序设计的所有重要知识点。本书讲解时结合大量实例,便于读者通过动手实践更加深刻地理解所学知识。另外,本书配1张DVD光盘,内容为作者专门为本书录制的16.8小时高清配套教学视频、本书涉及的实例源文件及其他相关学习资料。

  本书适合所有想全面学习LinuxC开发技术的人员阅读,也适合各种使用LinuxC做开发的工程技术人员阅读。对于长期在Linux平台做开发的程序员,本书更是一本不可多得的案头必备参考书。

第1篇 Linux下C语言基础

  第1章 Linux简介( 教学视频:16分钟)2

  1.1 GNU简介2

  1.2 Linux简介2

  1.2.1 Linux 发展史2

  1.2.2 Linux发行版4

  1.2.3 Linux内核版本5

  1.2.4 Linux与UNIX的关系5

  1.2.5 Linux在服务器方面的发展5

  1.2.6 Linux在嵌入式系统方面的发展6

  1.2.7 Linux在桌面系统方面的发展6

  1.3 Linux 环境下的其他编程语言7

  1.3.1 C++7

  1.3.2 Java9

  1.3.3 Perl11

  1.3.4 Python12

  1.3.5 Ruby13

  1.3.6 PHP13

  第2章 控制结构( 教学视频:56分钟)16

  2.1 goto语句16

  2.1.1 C语言中的无条件跳转16

  2.1.2 使用goto语句进行出错处理17

  2.1.3 出错处理的一般模型19

  2.2 C语言中的分支结构20

  2.2.1 分支结构的翻译20

  2.2.2 使用goto语句实现分支结构22

  2.3 短路计算22

  2.3.1 短路计算22

  2.3.2 &&运算的短路计算23

  2.3.3 ||运算的短路计算24

  2.4 C语言中的循环结构26

  2.4.1 while循环26

  2.4.2 do…while循环28

  2.4.3 for循环30

  2.5 switch语句32

  2.5.1 switch语句的应用32

  2.5.2 使用goto语句实现switch语句33

  2.6 优化控制结构34

  2.6.1 表达式优化——使用替换程序中的乘除法34

  2.6.2 表达式优化——常量折叠35

  2.6.3 表达式优化——使用数学公式36

  2.6.4 表达式优化——存储问题37

  2.6.5 分支优化——改变判断顺序38

  2.6.6 分支优化——使用switch语句41

  2.6.7 循环优化——一次性计算42

  第3章 C语言中的函数( 教学视频:56分钟)46

  3.1 函数的本质46

  3.2 变量的作用域和生命期47

  3.2.1 全局变量47

  3.2.2 局部变量48

  3.3 变量的初始值50

  3.3.1 全局变量的初始值50

  3.3.2 局部变量的初始值50

  3.4 与函数有关的优化51

  3.4.1 函数调用与程序优化52

  3.4.2 变量存储优化54

  3.5 编写多文件程序——变量的存储类别56

  3.5.1 存储类别56

  3.5.2 static变量的作用——改变变量的生命期56

  3.5.3 static变量的作用——实现封装和模块化设计58

  3.6 编写多文件的程序——链接的作用61

  3.6.1 链接多个文件61

  3.6.2 链接时符号解析规则63

  3.6.3 链接规则的应用63

  3.7 可变参数66

  3.7.1 可变参数的概念66

  3.7.2 实现一个简单的可变参数的函数67

  3.7.3 可变参数实例69

  3.7.4 关于printf()函数的疑问——缺少整型参数74

  3.7.5 关于printf()函数的疑问——缺少字符串地址参数75

  第4章 C语言中的指针与字符串( 教学视频:48分钟)78

  4.1 sizeof运算符78

  4.1.1 sizeof运算符的应用——得到内置类型的大小78

  4.1.2 sizeof运算符的应用——得到复合类型的大小79

  4.2 指针的应用80

  4.2.1 指针与别名陷阱80

  4.2.2 数组的指针82

  4.2.3 指针的指针83

  4.2.4 指针与参数传递85

  4.2.5 指针类型的意义90

  4.2.6 void*型指针91

  4.3 函数的指针94

  4.3.1 C语言中的函数指针94

  4.3.2 函数指针的应用——回调函数97

  4.3.3 函数指针数组102

  4.4 字符串103

  4.4.1 字符串与字符数组103

  4.4.2 字符串与指针104

  4.4.3 限定修饰符const106

  4.4.4 const关键字修饰指针——在指针定义之前107

  4.4.5 const关键字修饰指针——在指针定义之中107

  4.4.6 const关键字修饰指针——在指针定义之前和定义之中107

  4.4.7 使用const关键字的意义108

  第5章 C语言的高级技术( 教学视频:30分钟)111

  5.1 结构体与共同体111

  5.1.1 结构体中成员变量的存储分布111

  5.1.2 内存对齐112

  5.2 位运算115

  5.2.1 掩码运算115

  5.2.2 不安全的位运算117

  5.2.3 异或运算的特性119

  5.2.4 移位运算的陷阱121

  5.2.5 移位运算的实例122

  5.3 预处理124

  5.3.1 常用的代码组织形式124

  5.3.2 调试开关129

  5.4 C99新标准关键字详解130

  5.4.1 inline关键字的概念131

  5.4.2 inline关键字实例131

  5.4.3 inline关键字使用总结132

  5.4.4 restrict关键字的概念133

  5.4.5 restrict关键字的应用134

  第2篇 C语言开发环境

  第6章 vi编辑器( 教学视频:44分钟)136

  6.1 vi编辑器入门136

  6.1.1 vi简介136

  6.1.2 vi的工作模式136

  6.2 vi一般操作137

  6.2.1 进入vi137

  6.2.2 文本插入操作140

  6.2.3 文本删除操作141

  6.2.4 文本复制操作143

  6.2.5 撤销命令144

  6.2.6 重复命令145

  6.2.7 退出vi145

  6.3 vi的增强操作147

  6.3.1 替换命令147

  6.3.2 光标移动148

  6.3.3 按行移动光标148

  6.3.4 按字移动光标149

  6.3.5 按句移动光标150

  6.3.6 按段移动光标151

  6.3.7 文本行的移动151

  6.3.8 文本的异行移动153

  6.3.9 屏幕滚动153

  6.3.10 查找命令154

  6.3.11 替换命令155

  6.3.12 窗口的切分157

  6.3.13 设置环境157

  第7章 gcc编译器( 教学视频:27分钟)159

  7.1 初探gcc编译器159

  7.1.1 从经典的hello world开始159

  7.1.2 gcc编译流程160

  7.2 gcc常用选项160

  7.2.1 gcc常用选项汇总161

  7.2.2 -c选项161

  7.2.3 -S选项162

  7.2.4 -E选项163

  7.2.5 -o选项164

  7.2.6 -I选项165

  7.2.7 -g选项165

  7.3 链接原理165

  7.3.1 链接器的任务165

  7.3.2 目标文件165

  7.3.3 ELF格式的可重定位目标文件167

  7.3.4 目标文件中的符号表168

  7.3.5 重定位的概念172

  7.3.6 符号的重定位信息172

  7.4 关于库173

  7.4.1 使用库的优势173

  7.4.2 静态库的概念175

  7.4.3 创建静态库175

  7.4.4 使用静态库176

  7.4.5 动态库的概念177

  7.4.6 创建动态库178

  7.4.7 使用动态库180

  7.5 gcc工具链181

  第8章 构建makefile文件( 教学视频:46分钟)183

  8.1 makefile文件入门183

  8.1.1 makefile文件的组成内容183

  8.1.2 makefile文件包含183

  8.1.3 make工具的退出码184

  8.2 书写makefile规则185

  8.2.1 使用基本规则185

  8.2.2 使用隐式规则186

  8.2.3 使用伪目标187

  8.2.4 使用通配符188

  8.2.5 搜索源文件189

  8.3 使用命令190

  8.3.1 显示命令190

  8.3.2 执行命令190

  8.3.3 命令出错192

  8.4 使用变量192

  8.4.1 使用普通变量192

  8.4.2 变量中的变量194

  8.4.3 追加变量的值196

  8.4.4 自动化变量197

  8.5 使用条件判断197

  8.5.1 条件表达式197

  8.5.2 表达式实例199

  8.6 使用函数200

  8.6.1 函数调用的语法200

  8.6.2 字符串处理函数201

  8.6.3 文件名操作函数206

  8.6.4 foreach 函数209

  8.6.5 if函数210

  8.6.6 call函数210

  8.6.7 origin函数211

  8.6.8 shell函数211

  8.7 makefile实例212

  8.7.1 makefile实例——项目中的总makefile212

  8.7.2 makefile实例——makefile模板214

  第9章 gdb调试器( 教学视频:27分钟)216

  9.1 列出源程序216

  9.1.1 不带参数的list命令216

  9.1.2 带一个参数的list命令217

  9.1.3 带两个参数的list命令217

  9.2 运行程序的命令218

  9.3 操作断点的命令220

  9.3.1 设置断点220

  9.3.2 显示当前gdb的断点信息222

  9.3.3 删除指定的断点223

  9.3.4 禁止或启用断点223

  9.3.5 清除断点223

  9.3.6 观察点224

  9.3.7 设置断点实例225

  9.4 查看运行时数据228

  9.4.1 数据观察命令229

  9.4.2 对程序中函数的调用230

  9.4.3 查看表达式的值231

  9.4.4 查看数组的值231

  9.4.5 变量的输出格式232

  9.4.6 查看内存233

  9.4.7 自动显示变量233

  9.4.8 设置显示选项237

  9.4.9 显示变量的历史记录239

  9.4.10 查看寄存器239

  9.4.11 查看使用gdb环境变量240

  9.4.12 查看数据实例241

  9.5 改变程序的执行245

  9.5.1 修改变量的值246

  9.5.2 跳转执行246

  9.5.3 信号的产生及处理248

  9.5.4 强制调用函数248

  9.5.5 强制函数返回249

  9.6 gdb高级应用249

  9.6.1 产生core文件250

  9.6.2 跟踪栈上数据250

  9.6.3 绑定运行进程252

  9.6.4 源文件搜索254

  9.6.5 机器语言工具254

  9.6.6 其他有用的调试命令255

  第3篇 Linux进程操作

  第10章 进程环境( 教学视频:44分钟)258

  10.1 程序的启动和退出258

  10.1.1 在shell中启动一个程序258

  10.1.2 加载一个程序259

  10.1.3 加载地址260

  10.1.4 退出程序261

  10.1.5 进程终止处理函数262

  10.2 Linux进程内存管理263

  10.2.1 数据的内部存储263

  10.2.2 C程序的存储布局——代码段265

  10.2.3 C程序的存储布局——数据段和缓冲段267

  10.2.4 C程序的存储布局——栈268

  10.2.5 C程序的存储布局——堆269

  10.2.6 常量的存储270

  10.2.7 动态内存管理271

  10.2.8 动态内存分配的深入研究273

  10.3 shell环境276

  10.3.1 命令行参数277

  10.3.2 得到程序文件名278

  10.3.3 环境变量278

  10.3.4 得到指定的环境变量280

  10.3.5 设置一个环境变量280

  10.3.6 得到进程结束状态285

  10.3.7 使用errno调试程序286

  10.3.8 输出错误原因288

  10.4 全局跳转289

  10.4.1 局部跳转的局限性289

  10.4.2 使用全局跳转291

  10.4.3 使用全局跳转代替局部跳转292

  第11章 进程控制( 教学视频:45分钟)295

  11.1 进程标识符295

  11.1.1 进程ID295

  11.1.2 进程中重要的ID值296

  11.2 进程操作297

  11.2.1 创建一个进程298

  11.2.2 父子进程的共享资源299

  11.2.3 fork()函数的出错情况302

  11.2.4 创建一个共享空间的子进程303

  11.2.5 在函数内部调用vfork()函数304

  11.2.6 退出进程305

  11.2.7 使用exit()函数检查进程出错信息306

  11.2.8 exit()函数与内核函数的关系307

  11.2.9 设置进程所有者307

  11.2.10 调试多进程——设置跟踪流309

  11.2.11 调试多进程——使用gdb的attach命令309

  11.3 执行程序310

  11.3.1 执行一个新程序310

  11.3.2 执行解释器文件313

  11.3.3 在程序中执行shell命令315

  11.3.4 实现system()函数317

  11.4 关系操作318

  11.4.1 等待进程退出318

  11.4.2 等待指定的进程321

  11.4.3 僵尸进程的概念323

  11.4.4 产生一个僵尸进程324

  11.4.5 避免僵尸进程的产生325

  11.4.6 输出进程统计信息327

  第12章 时间和日历历程( 教学视频:7分钟)330

  12.1 系统时间330

  12.2 日历时间332

  第13章 信号及信号处理( 教学视频:48分钟)335

  13.1 信号的基础335

  13.1.1 信号的基本概念335

  13.1.2 产生信号336

  13.1.3 处理信号336

  13.1.4 常用信号的使用方法337

  13.2 信号的影响338

  13.2.1 重入339

  13.2.2 原子操作341

  13.2.3 中断系统调用343

  13.3 信号处理函数343

  13.3.1 设置信号处理函数343

  13.3.2 发送信号347

  13.3.3 向进程本身发送信号348

  13.3.4 设置Linux定时器349

  13.3.5 定时等待I/O350

  13.3.6 挂起进程352

  13.3.7 进程休眠353

  13.4 信号集与屏蔽信号356

  13.4.1 信号集和信号集处理函数356

  13.4.2 屏蔽信号358

  13.4.3 处理未决信号360

  13.4.4 高级信号注册函数362

  13.4.5 信号选项实例——SA_NOCLDWAIT选项363

  13.4.6 信号选项实例——SA_NODEFER选项364

  13.4.7 信号选项实例——SA_RESETHAND选项366

  第14章 进程间通信( 教学视频:52分钟)368

  14.1 进程间通信概述368

  14.1.1 进程间通信简介368

  14.1.2 进程间通信的难点369

  14.1.3 IPC的多种方式369

  14.2 管道370

  14.2.1 管道的概念370

  14.2.2 匿名半双工管道370

  14.2.3 匿名半双工管道的读写操作371

  14.2.4 创建管道的标准库函数375

  14.3 FIFO管道377

  14.3.1 FIFO的概念377

  14.3.2 创建FIFO378

  14.3.3 FIFO的读写操作379

  14.3.4 FIFO的缺点382

  14.4 System V IPC/POSIX IPC383

  14.4.1 IPC对象的概念383

  14.4.2 IPC对象的问题385

  14.4.3 IPC对象系统命令385

  14.5 共享内存386

  14.5.1 共享内存的概念386

  14.5.2 共享内存的创建387

  14.5.3 共享内存的操作388

  14.5.4 共享内存使用注意事项390

  14.6 信号量391

  14.6.1 信号量的概念391

  14.6.2 信号量的创建392

  14.6.3 信号量集的操作394

  14.7 消息队列396

  14.7.1 消息队列的概念396

  14.7.2 创建消息队列397

  14.7.3 读写消息队列399

  第15章 线程( 教学视频:34分钟)403

  15.1 线程与进程403

  15.1.1 线程的概念403

  15.1.2 线程的优势404

  15.2 线程标识符405

  15.3 线程基本操作405

  15.3.1 创建线程405

  15.3.2 向线程体函数传递参数407

  15.3.3 线程访问资源的限制409

  15.3.4 终止线程412

  15.3.5 正确得到线程退出信息的方法415

  15.3.6 取消一个线程的运行417

  15.3.7 线程退出函数420

  第16章 线程高级操作( 教学视频:28分钟)423

  16.1 线程同步——使用互斥量423

  16.1.1 初始化与销毁互斥量423

  16.1.2 得到与释放互斥量424

  16.1.3 使用互斥量的实例425

  16.2 线程同步——使用读写锁430

  16.2.1 初始化与销毁读写锁430

  16.2.2 得到与释放互斥锁431

  16.2.3 使用互斥量与读写锁的比较432

  16.3 线程属性438

  16.3.1 创建和销毁属性结构438

  16.3.2 线程的分离状态439

  16.3.3 分离一个已经创建的线程440

  16.3.4 线程栈的属性442

  第4篇 Linux文件操作

  第17章 文件I/O( 教学视频:71分钟)446

  17.1 文件描述符的概念446

  17.2 文件I/O操作446

  17.2.1 打开一个文件446

  17.2.2 打开文件的出错情况450

  17.2.3 关闭一个文件450

  17.2.4 创建一个新文件451

  17.2.5 文件定位453

  17.2.6 文件截短455

  17.2.7 清空一个文件458

  17.2.8 文件的读写操作460

  17.2.9 文件同步463

  17.3 文件描述符操作465

  17.3.1 复制文件描述符465

  17.3.2 I/O重定向概念及其应用466

  17.3.3 控制文件469

  17.3.4 修改打开文件的文件状态470

  17.4 非阻塞文件I/O473

  17.4.1 非阻塞I/O的概念473

  17.4.2 以非阻塞方式打开文件474

  17.4.3 将一个打开文件设置为非阻塞方式475

  17.5 内存映射I/O477

  17.5.1 内存映射I/O的概念477

  17.5.2 创建一个内存映射478

  17.5.3 撤销一个内存映射480

  17.5.4 内存映射同步482

  17.5.5 更改内存映射的权限485

  第18章 文件管理( 教学视频:42分钟)487

  18.1 文件状态487

  18.2 文件类型488

  18.3 文件权限490

  18.3.1 访问权限491

  18.3.2 设置用户ID位和设置组ID位492

  18.3.3 设置用户ID位的作用493

  18.3.4 使用设置用户ID位的实例494

  18.4 文件权限操作496

  18.4.1 测试文件访问权限497

  18.4.2 设置用户ID位与文件权限测试499

  18.4.3 使用文件权限屏蔽字499

  18.4.4 在shell中使用文件权限屏蔽字500

  18.4.5 在程序中使用文件权限屏蔽字501

  18.4.6 改变文件访问权限502

  18.4.7 在shell中改变文件权限503

  18.4.8 在程序中改变文件权限504

  18.4.9 改变一个打开的文件权限505

  18.5 文件系统结构509

  18.6 文件的硬链接513

  18.6.1 创建一个硬链接513

  18.6.2 删除一个硬链接515

  18.7 改变文件所有者519

  18.8 操作文件的时间522

  第19章 目录操作( 教学视频:30分钟)526

  19.1 目录的权限526

  19.1.1 目录的访问权限526

  19.1.2 测试目录的访问权限527

  19.2 目录操作528

  19.2.1 创建一个目录528

  19.2.2 删除一个目录529

  19.2.3 目录项结构530

  19.2.4 打开与关闭目录531

  19.2.5 读目录531

  19.2.6 读目录操作的实例——实现自己的ls命令534

  19.2.7 得到目录文件的读写位置536

  19.2.8 定位目录537

  19.2.9 回卷目录文件539

  19.3 进程的工作目录540

  19.3.1 工作目录的概念540

  19.3.2 改变进程的工作目录541

  19.3.3 得到进程的当前工作目录542

  19.3.4 子进程工作目录对父进程的影响545

  第20章 特殊文件( 教学视频:32分钟)548

  20.1 符号链接操作548

  20.1.1 符号链接548

  20.1.2 符号链接的功能549

  20.1.3 创建符号链接549

  20.1.4 创建指向不存在文件的符号链接550

  20.1.5 读写符号链接的目的文件551

  20.1.6 读写多重符号链接的目的文件553

  20.1.7 读写符号链接555

  20.1.8 取得符号链接的状态558

  20.1.9 更改符号链接的所有者562

  20.2 proc文件系统566

  20.2.1 proc文件系统566

  20.2.2 常用的内核信息567

  20.2.3 读取内核信息568

  20.2.4 进程状态信息575

  20.2.5 读取进程状态576

  20.2.6 proc文件系统编程实例——实现自己的ps命令578

  第21章 基于流的I/O( 教学视频:30分钟)581

  21.1 流与缓冲581

  21.2 基于流的文件操作583

  21.2.1 打开和关闭流583

  21.2.2 文件内容的冲洗585

  21.2.3 以字符为单位读写数据587

  21.2.4 以行为单位读写数据588

  21.2.5 gets()函数的漏洞589

  21.2.6 逐行读取文件内容590

  21.2.7 输出XML形式的配置文件591

  21.2.8 读写数据块593

  21.2.9 文件读写实例——实现cp命令594

  21.2.10 文件读写实例——字符统计596

  21.2.11 文件读写实例——目录下所有文件的字符统计597

  第5篇 Linux网络编程

  第22章 TCP和UDP协议( 教学视频:22分钟)602

  22.1 计算机网络的体系结构简介602

  22.1.1 计算机网络体系结构简介602

  22.1.2 OSI 参考模型中各层功能描述603

  22.1.3 TCP/IP参考模型的各层功能描述603

  22.1.4 面向连接服务和无连接服务604

  22.2 客户/服务器方式简介604

  22.3 用户数据报协议UDP605

  22.3.1 用户数据报的格式605

  22.3.2 用户数据报检验和的计算606

  22.3.3 UDP用户数据报的特性及用途607

  22.4 传输控制协议 TCP608

  22.4.1 TCP简介608

  22.4.2 TCP报文段的首部608

  22.4.3 TCP数据编号与确认609

  22.4.4 TCP的流量控制与拥塞控制610

  22.4.5 TCP的运输连接管理612

  第23章 网络编程基础( 教学视频:50分钟)614

  23.1 套接字概念614

  23.2 准备工作615

  23.2.1 字节序615

  23.2.2 地址格式616

  23.2.3 地址形式转换617

  23.2.4 获得主机信息619

  23.2.5 地址映射620

  23.3 套接字基础编程621

  23.3.1 建立和销毁套接字描述符621

  23.3.2 地址绑定623

  23.3.3 建立一个连接624

  23.3.4 最简单的网络应用程序——服务器端626

  23.3.5 最简单的网络应用程序——客户端629

  23.3.6 使用文件读写函数读写套接字631

  23.3.7 使用完整读写函数的网络应用程序634

  23.3.8 面向连接的数据传输637

  23.3.9 面向连接的网络应用程序——服务器端638

  23.3.10 面向连接的网络应用程序——客户端641

  23.3.11 无连接的数据传输643

  23.3.12 无连接的网络应用程序——服务器端644

  23.3.13 无连接的网络应用程序——客户端646

  23.4 非阻塞套接字649

  23.4.1 非阻塞网络应用程序——服务器端649

  23.4.2 非阻塞网络应用程序——客户端651

  第24章 网络编程进阶( 教学视频:32分钟)654

  24.1 套接字编程深入654

  24.1.1 bind函数的作用654

  24.1.2 并发服务器655

  24.1.3 UDP协议的connect()函数应用657

  24.2 多路选择I/O660

  24.2.1 多路选择I/O的概念660

  24.2.2 实现多路选择I/O661

  24.2.3 使用多路选择I/O处理多个连接663

  24.2.4 屏蔽信号的多路选择I/O666

  24.2.5 对比select()函数和pselect()函数667

  24.2.6 轮询I/O669

  24.3 非网络通信套接字670

  24.3.1 非命名UNIX域套接字671

  24.3.2 命名UNIX域套接字672

  24.3.3 UNIX域套接字实例——服务器端673

  24.3.4 UNIX域套接字实例——客户端677

  第25章 网络编程实例——实现文件传输程序( 教学视频:18分钟)679

  25.1 程序设计679

  25.1.1 整体程序设计679

  25.1.2 客户端程序设计679

  25.1.3 服务器端程序设计680

  25.2 文件传输程序的实现683

  25.2.1 客户端程序的实现——头文件683

  25.2.2 客户端程序的实现——程序主函数684

  25.2.3 客户端程序的实现——命令拆分函数686

  25.2.4 客户端程序的实现——命令处理模块687

  25.2.5 服务器端程序的实现——头文件697

  25.2.6 服务器端程序的实现——程序主函数698

  25.2.7 服务器端程序的实现——客户端命令处理模块699

  25.3 测试和验证706

  第26章 网络编程实例——简单的Web服务器( 教学视频:10分钟)707

  26.1 程序设计707

  26.1.1 整体程序设计707

  26.1.2 步骤1——解析客户端发送的内容708

  26.1.3 步骤2——寻找客户端需要的文件709

  26.1.4 步骤3——将客户端信息返回709

  26.2 Web服务器的实现710

  26.2.1 Web服务器程序的实现——头文件710

  26.2.2 Web服务器程序的实现——程序主函数711

  26.2.3 Web服务器程序的实现——请求处理模块715

  26.3 测试和验证719

  第6篇 shell脚本知识

  第27章 shell脚本基础( 教学视频:32分钟)722

  27.1 编写最简单的shell脚本722

  27.1.1 使用shell脚本的原因722

  27.1.2 脚本内容723

  27.1.3 运行一段脚本724

  27.2 shell中的变量724

  27.2.1 用户自定义变量725

  27.2.2 引用变量726

  27.2.3 为表达式求值727

  27.2.4 变量的类型729

  27.2.5 操作自定义变量730

  27.2.6 位置变量731

  27.2.7 重新分配位置变量732

  27.3 退出状态734

  27.4 条件测试736

  27.4.1 测试文件状态736

  27.4.2 测试时使用逻辑操作符738

  27.4.3 字符串测试739

  27.4.4 测试数值741

  第28章 shell脚本中的控制结构( 教学视频:29分钟)743

  28.1 shell脚本中的命令替换743

  28.2 分支结构744

  28.2.1 if/else分支结构744

  28.2.2 多重分支结构745

  28.2.3 使用case结构的分支语句747

  28.2.4 在case语句中使用逻辑表达式749

  28.3 条件测试命令的值750

  28.3.1 测试整数与字符串751

  28.3.2 测试字符串和空值752

  28.3.3 测试未初始化的变量752

  28.3.4 测试“false”的值753

  28.4 循环结构754

  28.4.1 while循环结构754

  28.4.2 until循环结构757

  28.4.3 for循环结构759

  28.4.4 break和continue命令762

  28.5 定义函数和使用函数764

更多简介内容

推荐帖子

评论

登录/注册

意见反馈

求资源

回顶部

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })