linux 在进行网络应用程序开发时,常用到以下的 linux 网络 API: socket():用于初始化一个新的套接字 bind():用于将套接字与一个本地地址绑定 liste...
在 Linux 下,select 函数通常用于多路复用 I/O,可以同时监视多个文件描述符的状态,当其中任何一个文件描述符准备就绪时,select 函数就会返回。 通过同时监控多个...
本篇简单介绍下,如何从输入多媒体中读取或者写入一帧数据。由于我们并没有进行编解码操作,这里的读写操作都是编码后的数据。在 FFmpeg 中每一帧数据是由 AVPacket 来表示。...
当我们打开一个多媒体文件时,FFmpeg 会用 AVCodecContext 结构体来存储文件的一些信息和参数,用于后续对文件的一系列操作。本篇就简单介绍下,如何使用 FFmpeg...
FFmpeg 是一个功能强大、开源的音视频处理工具,可以满足用户在音视频处理方面的各种需求。可以用于录制、转换、编辑、播放和流媒体处理等。它是一个跨平台的工具,支持 Windows...
前面的例子中,每一个请求的 URL 都对应了一个 HttpRequestHandler 类,并实现该类中 handle 函数,如下代码: 如果我们设计更多的 URL 就需要写更多的...
在前面例子中,我们在 run 函数中定义一系列需要的组件。这就使得对象的初始化工作和业务代码耦合在一起,如下代码: Oat++ 提供了两个宏 OATPP_CREATE_COMPON...
在请求 URL 时,我们希望返回 json 格式的数据。Oat++序列化的格式是由 Object Mapper 来定义的。使用步骤如下: 定义 DTO 数据类,并在该类中定义数据字...
Oat++ 是一个开源的 C++ Web 开发框架,接下来通过几篇文章了解下该框架的工作过程以及使用方法。文章主要内容包括: Oat++ 安装过程 Oat++ 基本使用 Docum...
命令模式用于将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 简单来讲,命令模式可以将不同的请求封装成统一的访问方...
观察者模式包含两个对象,一个是观察者,一个是被观察者。一般而言,观察者可以有多个,被观察者只有1个。当被观察者有任何的状态变化时,会通知到所有的观察者,观察者根据状态的不同做出不同...
适配器模式也是在开发一些业务框架时经常会使用到的模式。 1. STL 的适配器 其实该模式在我们使用 STL 标准模板库时也经常碰到过。比如,not1、not2 去翻适配器,bin...
模板方法模式是设计模式中的一种非常简单,应用也较为广泛的设计模式。其基本的思想和意图是,预先定义好一些算法框架,并把算法的具体实现延迟到子类。也就是说,我们可以使用父类来定义算法的...
1. 基本用法 2. new 重载 2.1 全局重载 2.2 成员重载 3. placement new 在 C++ 中,”placement new” 允...
函数调用绑定(Function Call Binding)指的是将一个函数调用与相应的函数定义(实现)关联起来的过程。 1. 函数绑定 对于 C++ 程序而言,将函数查找、关联的过...
Type Traits 是 C++11 中的一种模板元编程技术,它提供了一系列的模板类和函数,用于在编译时查询和操作类型信息。这些类型特征可以用于泛型编程中,帮助我们编写更加灵活、...
auto_ptr 是 C++98 中引入的智能指针,用于自动管理动态分配的对象的生命周期。然而,它在 C++11 中已被标记为已废弃,并且在 C++17 中已被移除,因为它存在一些...
在这篇文章中,我们重点学习 C++ 中用于动态内存管理的技术 – 智能指针,C++11 中智能指针包含:unique_ptr、shared_ptr、weak_ptr。这篇文章我们学...
智能指针是我们 C++ 中用于管理动态对象(堆区对象)的技术,在实际生产环境中,也有非常重要的应用。 本片文章我们学习 C++11 中的 shared_ptr 智能指针,主要从以...
C++11 中存在 3 个智能指针,分别是 unique_ptr、shared_ptr、weak_ptr,其他文章中已经讲解前 2 个智能指针的用法,本篇文章从以下3 个方面来讲解...