第一部分:
一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。作为一名C++后台开发,首当其冲得学会如何写Makefile。这里介绍Makefile的写法,特别是写在项目中的使用与注意点。
第二部分:
项目中的代码,既然是C++后台开发,那就都是用C++写的。C++在使用上有很多需要关注的地方。这里主要写C++语言学习重点。
第三部分:
代码写完了得在linux机器上调试,介绍多种linux调试工具。
第四部分:
不同模块或server之间需要通讯。这部分主要讲网络。
第五部分:
进程之间通讯进阶:进程通讯方式简单介绍,并重点描述最常使用的通讯方式。
第六部分:
数据存储:用户数据需要存储,这里介绍通常有哪些存储方式。
第七部分:
学会写一个后台程序后,要懂得设计更好的架构,才能更稳定、安全等,这一部分将架构设计。
封面图
目录
- 序
- 绪论
- 第1章C++编程常用技术1
- 1.1第一个C++程序1
- 1.2函数3
- 1.3数组6
- 1.4指针8
- 1.5引用12
- 1.6结构体、公用体、枚举14
- 1.6.1结构体、共用体、枚举的概念14
- 1.6.2结构体、共用体在内存单元占用字节数的计算18
- 1.7预处理20
- 1.8本章小结25
- 第2章面向对象的C++26
- 2.1类与对象26
- 2.2继承与派生49
- 2.3类的多态57
- 2.4本章小结64
- 第3章常用STL的使用65
- 3.1STL是什么65
- 3.2string66
- 3.3vector77
- 3.3.1vector是什么77
- 3.3.2vector的查增删78
- 3.3.3vector的内存管理与效率86
- 3.3.4Vector类的简单实现90
- 3.4map96
- 3.4.1map是什么96
- 3.4.2map的查增删96
- 3.4.3map的原理109
- 3.5set111
- 3.5.1set是什么111
- 3.5.2set的查增删112
- 3.6本章小结116
- 第4章编译117
- 4.1编译与链接117
- 4.2makefile的撰写131
- 4.3目标文件135
- 4.3.1ELF的文件类型135
- 4.3.2链接视图下的ELF内容136
- 4.3.3执行视图下的ELF内容142
- 4.3.4阅读ELF文件的工具——readelf144
- 4.3.5获得二进制文件里符号的工具——nm144
- 4.3.6减少目标文件大小的工具——strip146
- 4.4本章小结147
- 第5章调试148
- 5.1strace148
- 5.2gdb156
- 5.3top164
- 5.4ps165
- 5.5Valgrind168
- 5.5.1Valgrind概述168
- 5.5.2Linux程序内存空间布局170
- 5.5.3内存检查原理175
- 5.5.4Valgrind安装176
- 5.5.5Valgrind使用177
- 5.6本章小结187
- 第6章TCP协议188
- 6.1TCP协议188
- 6.1.1网络模型188
- 6.1.2TCP头部191
- 6.1.3TCP状态流转193
- 6.1.4TCP超时重传196
- 6.1.5TCP滑动窗口200
- 6.1.6TCP拥塞控制202
- 6.2TCP网络编程API205
- 6.3实现一个TCP server211
- 6.4TCP协议选项215
- 6.5网络字节序与主机序233
- 6.6封包和解包233
- 6.7本章小结247
- 第7章网络IO模型248
- 7.14种网络IO模型248
- 7.2select256
- 7.3poll267
- 7.4epoll277
- 7.5本章小结289
- 第8章网络分析工具290
- 8.1ping290
- 8.2tcpdump292
- 8.3netstat294
- 8.4lsof296
- 8.5本章小结298
- 第9章多线程299
- 9.1多线程是什么300
- 9.2多线程的创建与结束301
- 9.3线程的属性307
- 9.4多线程同步312
- 9.5多线程重入332
- 9.6本章小结333
- 第10章进程334
- 10.1程序与进程334
- 10.2进程的创建与结束335
- 10.3僵尸进程342
- 10.4守护进程347
- 10.5本章小结351
- 第11章进程间通信352
- 11.1管道352
- 11.2消息队列358
- 11.3共享内存362
- 11.4信号量368
- 11.5ipcs命令373
- 11.6本章小结374
- 第12章HTTP协议375
- 12.1HTTP协议工作流程375
- 12.2HTTP协议结构376
- 12.3HTTPS383
- 12.4CGI386
- 12.5FastCGI397
- 12.6本章小结398
- 第13章常用类库399
- 13.1JSON400
- 13.2Protobuf405
- 13.3本章小结409