Linux C入门之路,Linux C++学习之路

Module01 - Linux系统基础

由于本系列课程基于Linux(或UNIX),熟悉Linux操作系统是必要的前提。 该模块的课程包含以下方面的内容:

常用Unix/Linux命令

熟悉文件管理、文本处理、进程管理、网络、系统管理等各个方面大约100个常用的命令。

深入了解bash

了解Linux默认shell: bash 的语法、命令执行、I/O重定向、任务控制等。

正则表达式基础

由于UNIX/Linux中很多强大的文本处理命令如:grep、awk、sed,还有vi编辑器等工具配合正则表达式将产生强大的威力,所以熟悉正则表达式语法是十分必要的。

find、grep、sed、awk

四个强大的UNIX工具,特别是sed、awk在文本处理方面的能力非常强大,在Linux下工作应该掌握这几个命令。

Module02 - Linux开发环境

不同系统平台下的开发工具、开发环境各有不同。该模块课程关注的是Linux C++/C开发所必需的一系列工具:

vi(vim)文本编辑器

一个UNIX世界标准的文本编辑器,简约而强大,不论作为开发人员还是系统管理员,熟练使用vi是一项基本的、且不可或缺的技能。

gcc/g++ C/C++编译器

通过具体的示例讲解使用gcc/g++编译单个、多个文件、共享库、静态库等。

gdb 调试器

通过具体的示例来熟悉通过gdb来调试C/C++应用程序、修正应用程序运行期的错误。

make和makefile

学习编写makefile,使用make来构建一个完整的项目。

CVS - 版本控制

运用CVS来进行代码的版本控制。

Eclipse CDT

一个非常强大的C/C++ IDE,强大的文本编辑器、与GCC工具链的无缝结合、方便的gdb前端、集成CVS/Subversion等版本控制等,提供众多的便利,大大减轻开发者的负担。

Module03 - C++编程语言

深入讲解C++编程语言的各个方面,即完整的C++语法讲解:

语言基础

详细介绍变量、表达式、语句、指针、数组、流程控制、函数、文件组织等。

抽象机制 - 面向对象编程

深入讲解C++的抽象机制,封装(类)、继承、多态;操作符重载、函数对象、异常处理等。

模板 - 泛型编程

详细介绍C++的模板机制,类模板、函数模板、模板特化等方面的内容。

Module04 - C++标准库

完整地讲解STL各大组件:容器、算法、函数对象、容器适配器、迭代器、迭代器适配器等;另外还包括string、I/O stream;为了更好地了解STL容器的特性、排序算法,额外安排:数据结构简介和常用排序算法简介2个部分的内容。

常用数据结构简介

介绍动态数组、linked-list、binary search tree、rb-tree、hash table、stack、queue、heap等常用的数据结构。

STL容器详细介绍

vector、list、deque、stack、queue、priority_queue、map、set等容器的特性和用法。

常见排序算法介绍

简要介绍各种常见排序算法的原理,及其实现。

STL算法和预定义函数对象

标准库提供了多达60多个算法函数,涉及排序、搜索、排列组合等多个方面,其中多数算法会使用如greater、less、binder2nd等函数对象,该单元的课程详细介绍了上述算法的使用和相关函数对象的具体作用。

迭代器

STL容器和算法高度解耦,而算法之所以能方便的作用于STL容器,维系二者的就是迭代器。

在这个单元的课程中讲介绍C++迭代器的类别、各类迭代器适配器的用法。

string - 字符串

相对于C风格的字符串处理,C++提供了更安全和方便的字符串类型 string,给class提供类众多的方法确保针对字符串处理的安全、便捷性。该单元的课程讲完整地介绍string的使用。

I/O stream

C++标准库提供的一个强大的I/O流框架。本单元详细介绍标准输入/输出、文件输入/输出、字符串输入/输出流的运用,利用操控符来控制输入/输出的格式。

数值

介绍C++数值运算的算法,如valarray、4组数值算法函数、随机数等方面的内容。

Module05 - C++ Boost

Boost是由C++标准委员会成员发起、众多C++业界高人参与设计并实现的一个涉及面广、质量高且业已广泛使用的C++标准后备库,其中 TR1已经被纳入C++0x标准库。不论从风格和内容组织上讲,都可以认为Boost项目是C++标准库的延伸。截止到boost 1.43版本,boost项目拥有大约100个用途广泛的实用库。这部分课程将介绍服务器端开发所需要的几个组件:

容器与数据结构

介绍boost.any, boost.tuple, boost.array, boost.unordered(基于hash table,即hash_map和hash_set)等组件。

字符串算法和文字处理

介绍boost.lexical_cast, boost.format, boost.string_algo等组件。

正则表达式

正则表达式语法(perl正则表达式语法)的讲解,boost.regex库的使用。

智能指针

详细介绍shared_ptr、scoped_ptr、weak_ptr等智能指针的使用。

函数对象相关

详细介绍boost.bind, boost.mem_fn, boost.function, boost.ref, boost.lambda等组件。

序列化

通过实例熟悉boost.serialization库的用法。

日期与时间

boost.date_time库的详细介绍。

多线程

作为服务器端开发必不可少的内容之一:多线程支持,boost提供了一个跨平台的线程库:boost.thread。

本单元的课程详细介绍boost.thread。

网络编程

boost.asio库,通过对各类操作系统原生的socket API以及事件多路分离、异步I/O API的封装,构成了一个性能优秀、便于编程的网络编程框架,使复杂的网络编程任务变得简单、安全、并且高效。

本单元的课程通过一系列的示例来展示:通过asio来构建TCP同步/异步服务器和客户端、UDP同步/异步服务器和客户端应用,从而熟悉asio的接口和编程套路。

Module06 - C++ ACE

ACE是一个被广泛使用、设计优雅、高性能的C++通信框架(不仅仅是通信框架),其设计及实现被众多开源框架所借鉴。是构建稳定、高性能、高吞吐量、跨平台的服务器端程序的优秀框架。本模块的课程包含以下几个方面:

ACE基础网络I/O相关对象

详细介绍ACE_SOCK、ACE_SOCK_Acceptor、ACE_SOCK_Connector、ACE_INET_Addr等class的使用。

Reactor框架

ACE Reactor框架简化事件驱动程序的开发,而事件驱动是很多网络化应用的基本特征,这些应用常见的事件源包括I/O事件、Posix信号或 Windows句柄激发以及定时器到期等。

本单元介绍ACE_Event_Handler、Timer、ACE_Reactor等类的使用,并使用该框架构建一个简易的多人聊天室应用。

Task框架

ACE Task框架提供了强大而可扩展的面向对象并发能力,如在基于对象的上下文(context)中派生线程,以及在执行不同线程中的对象之间传递消息和对消息进行排队。

Acceptor-Connector框架

ACE Acceptor-Connector框架实现了Acceptor-Connector模式,这种模式通过解除:1,网络化应用中相互协作的对等服务的连接和初始化所需的活动、2,以及它们一旦连接和初始化后所执行的处理的耦合,增强了软件复用和可扩展性。

Proactor框架

Proactor框架引入异步I/O机制,既保留了Reactor框架的事件多路分离,避免多线程的开销,同时还缓和了反应式的同步I/O的瓶颈效应。

Module07 - 数据库开发

数据库作为服务器端应用数据持久化的最重要的部件,在服务器端应用开发中占有非常重要的地位。本模块主要针对Oracle 10g和MySQL 5.1两种关系型数据库管理系统。本模块包含以下内容:

SQL语言

详细介绍DML、DDL语句的语法和使用。

Oracle PL/SQL

全面介绍Oracle PL/SQL语法,以及使用PL/SQL编写存储过程、函数、触发器。

MySQL存储过程

编写MySQL存储过程、函数、触发器。

C++ OTL

OTL:Oracle、ODBC and DB2-CLI Template Library。通过OTL,可以方便、高效的与各类主流的关系型数据库如DB2、Oracle、Infomix、Sybase、MySQL等通信。

轩辕软件专注 Linux下C/C++、ACE、Boost、高性能服务器端应用 开发技术

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
教程非常不错,价值280元,绝对是干货 Linux网络编程(总共41集) 讲解Linux网络编程知识,分以下四个篇章。 Linux网络编程之TCP/IP基础篇 Linux网络编程之socket编程篇 Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等通信、封装、分用、端口) 02TCPIP基础(二) 最大传输单元(MTU)/路径MTU 以太网帧格式 ICMP ARP RARP 03TCPIP基础(三) IP数据报格式 网际校验和 路由 04TCPIP基础(四) TCP特点 TCP报文格式 连接建立三次握手 连接终止四次握手 TCP如何保证可靠性 05TCPIP基础(五) 滑动窗口协议 UDP特点 UDP报文格式 Linux网络编程之socket编程篇 06socket编程(一) 什么是socket IPv4套接口地址结构 网络字节序 字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户/服务器 socket、bind、listen、accept、connect 08socket编程(三) SO_REUSEADDR 处理多客户连接(process-per-conection) 点对点聊天程序实现 09socket编程(四) 流协议与粘包 粘包产生的原因 粘包处理方案 readn writen 回射客户/服务器 10socket编程(五) read、write与recv、send readline实现 用readline实现回射客户/服务器 getsockname、getpeername gethostname、gethostbyname、gethostbyaddr 11socket编程(六) TCP回射客户/服务器 TCP是个流协议 僵进程与SIGCHLD信号 12socket编程(七) TCP 11种状态 连接建立三次握手、连接终止四次握手 TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程(十) 用select改进第八章点对点聊天程序 16socket编程(十一) 套接字I/O超时设置方法 用select实现超时 read_timeout函数封装 write_timeout函数封装 accept_timeout函数封装 connect_timeout函数封装 17socket编程(十二) select限制 poll 18socket编程(十三) epoll使用 epoll与select、poll区别 epoll LT/ET模式 19socket编程(十四) UDP特点 UDP客户/服务基本模型 UDP回射客户/服务器 UDP注意点 20socket编程(十五) udp聊天室实现 21socket编程(十六) UNIX域协议特点 UNIX域地址结构 UNIX域字节流回射客户/服务 UNIX域套接字编程注意点 22socket编程(十七) socketpair sendmsg/recvmsg UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对象的持续性 24进程间通信介绍(二) 死锁 信号量 PV原语 用PV原语解决司机与售票员问题 用PV原语解决民航售票问题 用PV原语解决汽车租赁问题 25System V消息队列(一) 消息队列 IPC对象数据结构 消息队列结构 消息队列在内核中的表示 消息队列函数 26System V消息队列(二) msgsnd函数 msgrcv函数 27System V消息队列(三) 消息队列实现回射客户/服务器 28共享内存介绍 共享内存 共享内存示意图 管道、消息队列与共享内存传递数据对比 mmap函数 munmap函数 msync函数 29System V共享内存 共享内存数据结构 共享内存函数 共享内存示例 30System V信号量(一) 信号量 信号量集结构 信号量集函数 信号量示例 31System V信号量(二) 用信号量实现进程互斥示例 32System V信号量(三) 用信号集解决哲学家就餐问题 33System V共享内存与信号量综合 用信号量解决生产者消费者问题 实现shmfifo 34POSIX消息队列 POSIX消息队列相关函数 POSIX消息队列示例 35POSIX共享内存 POSIX共享内存相关函数 POSIX共享内存示例 Linux网络编程之线程篇 36线程介绍 什么是线程 进程与线程 线程优缺点 线程模型 N:1用户线程模型 1:1核心线程模型 N:M混合线程模型 37POSIX线程(一) POSIX线程库相关函数 用线程实现回射客户/服务器 38POSIX线程(二) 线程属性 线程特定数据 39POSIX信号量与互斥锁 POSIX信号量相关函数 POSIX互斥锁相关函数 生产者消费者问题 自旋锁与读写锁介绍 40POSIX条件变量 条件变量 条件变量函数 条件变量使用规范 使用条件变量解决生产者消费者问题 41一个简单的线程池实现 线程池性能分析 线程池实现 网络编程, Linux, 密码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值