Linux C与C++一线开发实践
¥
90.3
7.0折
¥
129
全新
库存11件
作者 朱文伟,李建英
出版社 清华大学出版社
ISBN 9787302512554
出版时间 2018-12
装帧 平装
开本 16开
定价 129元
货号 1201802382
上书时间 2024-12-12
商品详情
品相描述:全新
商品描述
目录 章Linux概述 1.1什么是Linux 1.2Linux的简史 1.3Linux和Windows的比较 1.4Linux主要应用领域 1.5Linux的版本 1.6使用哪个版本的Linux进行学习 1.7Linux的特点 1.8如何学习Linux 1.9命令行还是图形界面 1.10计算机启动的基本过程 1.10.1按下电源 章Linux概述 1.1什么是Linux 1.2Linux的简史 1.3Linux和Windows的比较 1.4Linux主要应用领域 1.5Linux的版本 1.6使用哪个版本的Linux进行学习 1.7Linux的特点 1.8如何学习Linux 1.9命令行还是图形界面 1.10计算机启动的基本过程 1.10.1按下电源 1.10.2BIOS自检 1.10.3系统引导 1.10.4实模式和保护模式 1.11启动内核 1.12认识Shell 1.13常见的Shell 1.14图形界面和字符界面的切换 1.14.1在不退出X-Window的情况下切换到字符界面 1.14.2强行退出X-Window进入文本模式 1.14.3设置每次开机进入字符界面 1.14.4从字符界面进入图形界面 1.15Shell命令概述 1.16环境变量 第2章搭建LinuxC++开发环境 2.1准备Linux虚拟机 2.2连接Linux虚拟机 2.2.1通过桥接模式连接虚拟机 2.2.2主机模式 2.2.3通过NAT模式连接虚拟机 2.3通过终端工具连接Linux虚拟机 2.4搭建Linux下的C++开发环境 2.4.1非集成开发方式 2.4.2集成开发方式 2.5搭建Windows下的LinuxC++开发环境 2.5.1搭建非集成式的Windows下的LinuxC++开发环境 2.5.2搭建集成式的Windows下的LinuxC++开发环境 2.6需要掌握的开发工具 2.7vi编辑器的使用 2.7.1vi编辑器概述 2.7.2vi编辑器的工作模式 2.7.3vi的基本操作 2.7.4命令行模式下的基本操作 2.7.5插入模式 2.7.6末行模式操作 2.8gcc编译器的使用 2.8.1gcc对C语言的编译过程 2.8.2gcc所支持的后缀名文件 2.8.3gcc的语法格式 2.8.4gcc常见选项 2.9g++的基本使用 2.10gdb调试器的使用 2.10.1为何要学习gdb调试器 2.10.2gdb简介 2.10.3重要准备 2.10.4启动gdb 2.10.5退出gdb 2.10.6gdb的常用命令概述 2.10.7file命令加载程序 2.10.8list命令显示源代码 2.10.9run命令运行程序 2.10.10break命令设置断点 第3章C++语言基础 3.1C++基础知识 3.1.1C++程序结构 3.1.2注释 3.1.3变量和数据类型 3.1.4标识 3.1.5基本数据类型 3.1.6变量的定义和C++11中的auto 3.1.7变量的范围 3.1.8变量初始化 3.1.9常量 3.1.10操作符/运算符 3.1.11控制台交互 3.2控制结构 3.2.1条件结构 3.2.2循环结构 3.2.3分支控制和跳转 3.2.4选择结构语句switch 3.3函数 3.4函数不错话题 3.4.1参数按数值传递和按地址传递 3.4.2函数重载 3.4.3内联函数 3.4.4递归 3.4.5函数的声明 3.5不错数据类型 3.5.1数组 3.5.2指针 3.5.3动态分配内存 3.5.4结构体 3.5.5自定义数据类型 3.6面向对象编程 3.6.1类 3.6.2构造函数和析构函数 3.6.3构造函数重载 3.6.4类的指针 3.6.5由关键字struct和union定义的类 3.6.6操作符重载 3.6.7关键字this 3.6.8静态成员 3.6.9类之间的关系 3.6.10多态 3.7C++面向对象小结 3.8C++不错知识 3.8.1模板 3.8.2命名空间 3.8.3异常处理 3.8.4预处理指令 3.8.5预定义宏 3.8.6C++11中的预定义宏 3.9字符串 3.9.1字符串基础 3.9.2搜索与查找 3.10再论异常处理 3.10.1基本概念 3.10.2抛出异常 3.10.3捕获异常 3.10.4C++标准异常 3.10.5定义新的异常 3.11再论函数模板 3.12字符集 3.12.1计算机上的3种字符集 3.12.2查看Linux系统的字符集 3.12.3修改Linux系统的字符集 3.12.4Unicode编码的实现 3.12.5C运行时库对Unicode的支持 3.12.6C++标准库对Unicode的支持 3.12.7字符集相关实例 第4章Linux文件编程 4.1文件系统 4.1.1基本概念 4.1.2文件系统层次结构标准 4.2文件的属性信息 4.3i节点 4.3.1基本概念 4.3.2i节点的内容 4.3.3i节点的使用状况 4.4文件类型 4.4.1普通文件 4.4.2目录 4.4.3块设备文件 4.4.4字符设备文件 4.4.5链接文件 4.5文件权限 4.6Linux文件I/O编程的基本方式 4.7什么是I/O 4.8Linux系统调用下的文件I/O编程 4.8.1文件描述符 4.8.2打开或创建文件 4.8.3创建文件 4.8.4关闭文件 4.8.5读取文件中的数据 4.8.6向文件写入数据 4.8.7设定文件偏移量 4.8.8获取文件状态 4.8.9文件锁定 4.8.10建立文件和内存映射 4.8.11mmap和共享内存对比 4.9C++方式下的文件I/O编程 4.9.1流的概念 4.9.2流的类库 4.9.3打开文件 4.9.4关闭文件 4.9.5写入文件 4.9.6读取文件 4.9.7文件位置指针 4.9.8状态标志符的验证 4.9.9读写文件数据块 4.10文件编程中的其他操作 4.10.1获取文件有关信息 4.10.2创建和删除文件目录项 第5章多进程编程 5.1进程的基本概念 5.2进程的描述 5.2.1进程的标识符 5.2.2PID文件 5.3进程的创建 5.3.1使用fork创建进程 5.3.2使用exec创建进程 5.3.3使用system创建进程 5.4进程调度 5.5进程的分类 5.5.1前台进程 5.5.2后台进程 5.6守护进程 5.6.1守护进程的概念 5.6.2守护进程的特点 5.6.3查看守护进程 5.6.4守护进程的分类 5.6.5守护进程的启动方式 5.6.6编写守护进程的步骤 第6章Linux进程间的通信 6.1信号 6.1.1信号的基本概念 6.1.2与信号相关的系统调用 6.2管道 6.2.1管道的基本概念 6.2.2管道读写的特点 6.2.3管道的局限性 6.2.4创建管道函数pipe 6.2.5读写管道函数read/write 6.2.6等待子进程中断或结束的函数wait 6.2.7使用管道的特殊情况 6.3消息队列 6.3.1创建和打开消息队列函数msgget 6.3.2获取和设置消息队列的属性函数msgctl 6.3.3将消息送入消息队列的函数msgsnd 6.3.4从消息队列中读取一条新消息的函数msgrcv 6.3.5生成键值函数ftok 第7章C++Web编程 7.1CGI程序的工作方式 7.2架设Web服务器Apache 第8章多线程基本编程 8.1使用多线程的好处 8.2多线程编程的基本概念 8.2.1操作系统和多线程 8.2.2线程的基本概念 8.2.3线程的状态 8.2.4线程函数 8.2.5线程标识 8.2.6C++多线程开发的两种方式 8.3利用POSIX多线程API函数进行多线程开发 8.3.1线程的创建 8.3.2线程的属性 8.3.3线程的结束 8.3.4线程退出时的清理机会 8.4C++11中的线程类 8.4.1线程的创建 8.4.2线程的标识符 8.4.3当前线程this_thread 第9章多线程不错编程 9.1多线程的同步和异步 9.2线程同步 9.3利用POSIX多线程API函数进行线程同步 9.3.1互斥锁 9.3.2读写锁 9.3.3条件变量 9.4C++11/14中的线程同步 9.5线程池 9.5.1线程池的定义 9.5.2使用线程池的原因 9.5.3用C++实现一个简单的线程池 0章Linux下的库 10.1库的基本概念 10.2库的分类 10.3静态库 10.3.1静态库的基本概念 10.3.2静态库的创建和使用 10.4动态库 10.4.1动态库的基本概念 10.4.2动态库的创建和使用 1章TCP/IP协议基础 11.1什么是TCP/IP 11.2TCP/IP协议的分层结构 11.3应用层 11.3.1DNS 11.3.2端口的概念 11.4传输层 11.4.1TCP协议 11.4.2UDP协议 11.5网络层 11.5.1IP协议 11.5.2ARP协议 11.5.3RARP协议 11.5.4ICMP协议 11.6数据链路层 11.6.1数据链路层的基本概念 11.6.2数据链路层的主要功能 2章套接字基础 12.1网络程序的架构 12.2套接字的类型 12.3套接字的地址结构 12.4主机字节序和网络字节序 12.5出错信息的获取 3章TCP套接字编程 13.1TCP套接字编程的基本步骤 13.2协议簇和地址簇 13.3socket地址 13.3.1通用socket地址 13.3.2专用socket地址 13.3.3IP地址的转换 13.4TCP套接字编程的相关函数 13.4.1socket函数 13.4.2bind函数 13.4.3listen函数 13.4.4accept函数 13.4.5connect函数 13.4.6write函数 13.4.7read函数 13.4.8send函数 13.4.9recv函数 13.4.10close函数 13.4.11获得套接字地址 13.4.12阻塞套接字的使用 13.4.13非阻塞套接字的使用 4章UDP套接字编程 14.1UDP套接字编程的基本步骤 14.2TCP套接字编程的相关函数 14.2.1消息发送函数sendto和sendmsg 14.2.2消息接收函数recvfrom和recvmsg 14.3实战UDP套接字 14.4UDP丢包及无序问题 5章原始套接字编程 15.1原始套接字概述 15.2与标准套接字的区别 15.3原始套接字的编程方法 15.4面向链路层的原始套接字编程函数 15.4.1创建原始套接字函数 15.4.2接收函数recvfrom 15.4.3发送函数sendto 15.5以太网帧格式 15.6获取网络接口的信息 15.7实战链路层的原始套接字 15.7.1常见的应用场景 15.7.2混杂模式 15.7.3链路层原始套接字开发注意事项 15.8面向IP层的原始套接字编程 6章C++网络性能测试工具iPerf的简析 16.1iPerf概述 16.2iPerf的特点 16.3iPerf的工作原理 16.4iPerf的主要功能 16.5在Linux下安装iPerf 16.6iPerf的简单使用 16.7iPerf源代码概述 16.8Thread类 16.8.1数据成员说明 16.8.2主要函数成员 16.9SocketAddr类 16.10Socket类 16.10.1Listen函数 16.10.2Accept函数 16.10.3Connect函数 7章版本控制和SVN工具 17.1SVN简介 17.1.1什么是SVN 17.1.2使用SVN的好处 17.1.3使用SVN的基本流程 17.2SVN服务器的安装和配置 17.2.1VisualSVN服务器的安装和配置 17.2.2SVN客户端在Windows上的使用 8章C++跨平台开发 18.1什么是跨平台 18.2C++的可移植性 18.2.1可移植性的概念 18.2.2影响C++语言可移植性的因素 18.3设计跨平台软件的原则 18.3.1避免语言的扩展特性 18.3.2实现动态的处理 18.3.3使用脚本文件进行管理 18.3.4使用安全的数据串行化 18.3.5跨平台开发中的编译及测试 18.3.6实现抽象 18.4建立跨平台的开发环境 18.4.1跨平台开发编译器的选择 18.4.2建立跨平台的Make系统 18.5C++语言跨平台软件开发的实现 18.6C++语言跨平台的开发策略 18.7建立统一的工程包 18.8建立跨平台的代码库 18.9工厂模式与单例模式的实现 18.10利用平台依赖库封装平台相关代码 18.11处理器的差异控制 18.11.1内存对齐 18.11.2字节顺序 18.11.3类型的大小 18.11.4使用预编译处理类型差异 18.12编译器的差异控制 18.12.1实现平台无关的代码 18.12.2内存管理 18.12.3容错性的影响 18.12.4利用日志管理异常 18.13操作系统和接口库 18.13.1文件描述符的限制 18.13.2进程和线程的限制 18.13.3操作系统抽象层 18.14用户界面 18.14.1跨平台软件图形界面的设计 18.14.2wxWidgets简介 18.14.3使用wxWidgets开发跨平台软件的界面 9章Linux下的安全编程 19.1本章概述 19.2密码学基础知识 19.2.1密码学概述 19.2.2对称密钥加密技术 19.2.3公开密钥加密技术 19.2.4单向散列函数算法 19.2.5数字签名基础知识 19.3身份认证基础知识 19.3.1身份认证概述 19.3.2身份认证的方式 19.4密码编程的两个重要库 19.5OpenSSL的简介 19.6OpenSSL模块分析 19.6.1OpenSSL源代码模块结构 19.6.2OpenSSL加密库调用方式 19.6.3OpenSSL支持的对称加密算法 19.6.4OpenSSL支持的非对称加密算法 19.6.5OpenSSL支持的信息摘要算法 19.6.6OpenSSL密钥和证书管理 19.7面向对象与OpenSSL 19.7.1BIO接口 19.7.2EVP接口 19.8OpenSSL的下载、编译和升级安装 19.9对称加解密算法的分类 19.9.1流对称算法 19.9.2分组对称算法 19.9.3了解库和头文件 19.10利用OpenSSL进行对称加解密 19.10.1一些基本概念 19.10.2对称加解密相关函数 19.11Crypto++的简介 19.12Crypto++的编译 19.13Crypto++进行AES加解密 内容摘要 Linux C/C++编程在Linux应用程序开发中占有重要的地位,掌握这项技能将在就业竞争中立于不败之地。本书是一本针对初、中级读者的、贴近软件公司一线开发实践的书。 本书共分为19章,内容包括Linux概述、搭建开发环境、语言基础、文件编程、多进程编程、进程间通信、Web编程、多线程编程、Linux下的库、TCP/IP协议基础、网络编程、网络性能测试工具iPerf简析、版本控制和SVN工具、C++跨平台开发以及安全编程等。 本书适合想全面学习Linux环境下C/C++语言编程的读者,并可作为初中级开发人员的案头查阅与参考手册,也适合作为高等院校和培训学校相关专业师生的教学参考书。
— 没有更多了 —
本店暂时无法向该地区发货
以下为对购买帮助不大的评价