主页

C++拷贝构造与拷贝赋值的深入探讨

写在前面 总结一下C++类的拷贝构造与拷贝赋值部分, 从基本的示例入手, 一点点介绍拷贝控制与资源管理的一些内容. 参考Cppprimer(第七章:类, 第十三章:拷贝控制), effective C++(55) 类的拷贝赋值运算符 一般流程 先将右侧运算对象拷贝到一个局部临时对象中 拷贝完成后, 销毁左侧运算对象的现有成员(保证内存安全) 将数据从临时对象拷贝到左侧运算对象的成员中. 要点 自赋值的正确性: 保证赋值运算符将对象赋予其自身时能够正确工作. 要做到这一点, 一个好的方法是在销毁左侧运算对象资源之前, 先拷贝右侧运算对象. 大多数赋值运算符组合了析构函数和拷贝构造函...

阅读更多

C++多继承,虚继承部分总结与示例

写在前面 写一下多继承, 虚继承的一些部分, 包括一些例子. 参考cppprimer 多继承 简介 多继承是指从多个直接基类中产生派生类的能力. 多继承的派生类继承了所有父类的属性, 所以会带来一些复杂的问题. 示例1: 多继承用法与调用顺序 #include <string> #include <iostream> using namespace std; class ZooAnimal { public: ZooAnimal() { cout << "call ZooAnimal::ZooAnimal()\n"; } ~ZooAnimal() { cout << "call ZooAnimal:...

阅读更多

Macos下载钉钉直播回放视频的python解决方案

写在前面 之前写过一篇关于用Charles抓包下载钉钉直播回放视频的方法, 那会还是可以直接通过FFmpeg下载m3u8链接并且直接合并的, 但是现在直接上FFmpeg会出现403, 所以还是用别的方法来做吧. 后来发现抓包找到的m3u8不是加密视频流, 那就直接下载ts文件然后合并即可. 抓包 Charles代理 Proxy -> macOS Proxy 菜单开启代理 Proxy -> Proxy Settings 菜单,对代理进行配置,需要开启 HTTP 代理——选择 Use HTTP proxy。 安装 Charles 根证书,选择 Help -> SSL Proxying -> Insta...

阅读更多

Linux信号的系统调用与示例

写在前面 总结一下信号处理部分的系统调用与示例 信号基础 简介 信号(signal), 又称软件中断, 是系统中事件发生时对进程的通知机制. 也正是这种通知机制, 打断了程序执行的正常流程, 所以其与硬件中断很相似. 一个具有合适权限的进程可以向另一进程发送信号, 所以信号可以作为一种进程间通信方式(IPC). 同时, 进程也可以向自身发送信号, 一些常见的引发内核为进程产生信号的各类事件如下: 硬件异常: 硬件错误, 内存访问错误(段错误), 除零异常等 特殊字符: 用户输入了Ctrl+C或者Ctrl+Z或者Ctrl+\. 软件事件: 调整程序窗口大小, 进程定时器到期, 进程运行时间超限. 在signal.h头文件中详细定义了上述提到的各种信号以及符号...

阅读更多

Linux内存管理部分系统调用与示例分析

写在前面 总结Linux系统调用的内存分配与虚拟内存管理部分, 包括堆内存和栈内存的操作, 分配, 释放等. 参考: Linux/Unix系统编程手册第六/七章. 基本系统调用: brk/sbrk C库函数: malloc/realloc/calloc/alloca/free 虚拟内存管理 简介 首先来看进程的内存布局, 如下图: 但是实际上, 这个布局并不是真实存在物理内存中的, 而是位于虚拟内存中. 利用访问局部性以追求高效地使用CPU和RAM(物理内存, 随机访问存储器)资源. 所谓访问局部性, 可以表现为以下两种情况: 时间局部性: 程序倾向于在不久的将来再次访问最近刚访问过的内存地址(例如循环) 空间局部...

阅读更多

Ssh在本地和远程服务器之间传送文件的命令总结(scp,rsync)

写在前面 关于云服务器, 之前介绍过不少文章, 但是当时依赖于一个名叫Termius的ssh图形化客户端, 好像是只有MacOS有, 传送文件只需要拖拽即可, 后来发现还是要多学点命令来完成文件传输才行, 下面来看看用scp以及rsync在本地和远端传送文件/文件夹的一些方法. 环境: 物理主机: MacOS12.6 M1 服务器(云主机): Ubuntu 20.04 x86_64 参考: 通过 SSH 在远程和本地系统之间传输文件的 4 种方法 - 腾讯云开发者社区-腾讯云 (tencent.com); 准备工作: 配置ssh免密登录 参考: SSH 三步解决免密登录_jeikerxiao的博客-CSDN博客_ssh...

阅读更多

Linux进程间通信类系统调用总结与示例

写在前面 基本方法 通信:关注进程之间的数据交换 数据传输: 管道, FIFO, socket 伪终端 消息队列(POSIX/System V) 共享内存: 共享内存(POSIX/System V) 内存映射 同步:关注进程和线程操作之间的同步, 有以下四种主要形式: 信号量(POSIX/System V) 文件锁 互斥(线程) 条件变量(线程) 信...

阅读更多

Linux共享库,静态库与相关系统调用,工具的使用总结

写在前面 总结Unix/Linux操作系统的共享库/静态库部分, 以及一些系统调用. 参考Linux/UNIX系统编程手册41-42章. 测试程序均在Ubuntu下使用cc(gcc-9)运行成功. $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none:hsa OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/...

阅读更多

Total views.
您是Zorch的第 个小伙伴
Hits