阅读笔记 目录

来源:互联网 发布:9377烈焰网页数据辅助 编辑:程序博客网 时间:2024/04/29 15:48

第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.1 STL 是什么 65
3.2 string 66
3.3 vector 77
3.3.1 vector 是什么 77
3.3.2 vector 的查增删 78
3.3.3 vector 的内存管理与效率 86
3.3.4 Vector 类的简单实现 90
3.4 map 96
3.4.1 map 是什么 96
3.4.2 map 的查增删 96
3.4.3 map 的原理 109
3.5 set 111
3.5.1 set 是什么 111
3.5.2 set 的查增删 112
3.6

第4 章 编译 117

4.1 编译与链接 117
4.2 makefile 的撰写 131

4.3 目标文件 135

4.3.1 ELF 的文件类型 135
4.3.2 链接视图下的ELF 内容 136
4.3.3 执行视图下的ELF 内容 142
4.3.4 阅读ELF 文件的
工具——readelf 144
4.3.5 获得二进制文件里
符号的工具——nm 144
4.3.6 减少目标文件大小
的工具——strip 146

第5 章 调试 148
5.1 strace 148
5.2 gdb 156
5.3 top 164
5.4 ps 165
5.5 Valgrind 168
5.5.1 Valgrind 概述 168
5.5.2 Linux 程序内存空间布局 170
5.5.3 内存检查原理 175
5.5.4 Valgrind 安装 176
5.5.5 Valgrind 使用 177
5.6 本章小结 187
第6 章 TCP 协议 188
6.1 TCP 协议 188
6.1.1 网络模型 188
6.1.2 TCP 头部 191
6.1.3 TCP 状态流转 193
6.1.4 TCP 超时重传 196

6.1.5 TCP 滑动窗口 200
6.1.6 TCP 拥塞控制 202
6.2 TCP 网络编程API 205
6.3 实现一个TCP server 211
6.4 TCP 协议选项 215
6.5 网络字节序与主机序 233
6.6 封包和解包 233
6.7 本章小结 247
第7 章 网络IO 模型 248
7.1 4 种网络IO 模型 248
7.2 select 256
7.3 poll 267
7.4 epoll 277
7.5 本章小结 289
第8 章 网络分析工具 290
8.1 ping 290
8.2 tcpdump 292
8.3 netstat 294
8.4 lsof 296
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.5 ipcs 命令 373

11.6 本章小结 374
第12 章 HTTP 协议 375
12.1 HTTP 协议工作流程 375
12.2 HTTP 协议结构 376
12.3 HTTPS 383
12.4 CGI 386
12.5 FastCGI 397
12.6 本章小结 398
第13 章 常用类库 399
13.1 JSON 400
13.2 Protobuf 405
13.3 本章小结 409

0 0