KalosAner Blog

「山穷水复疑无路,柳暗花明又一村。」

VMware 上 Linux 虚拟机和主机复制粘贴

虚拟机和主机复制粘贴需要满足的条件: 1、安装 vm-tools 我是通过 VMware 安装的,除此之外也可以通过命令 apt-get install open-vm-tools-desktop 安装。 可以使用命令 systemctl status vmtoolsd 查看服务是否启动。 2、 开启时间同步 3、设置设备状态为“启动时连接”,并且设置“使用 ISO 映像文件”...

Linux安装Redis(超详细,附图)

一、Linux安装Redis服务 官网下载redis压缩包 1.将下载的redis压缩包上传到linux 2.创建redis文件夹,文件夹可任意目录,我这里创建在/usr/local目录下 3.进入redis目录,将压缩包移动到redis目录 4.解压redis 1 tar -zxvf redis-6.2.12.tar.gz 5.进入redis-6.2.12...

Linux 编译安装 muduo

一、下载 本机测试环境 ubuntu 20。 直接从 GitHub 上下载: 1 git clone https://github.com/chenshuo/muduo 【注意】:muduo库是基于boost开发的,所以需要先在Linux平台上安装boost库。 注意,muduo库源码编译会编译很多unit_test测试用例代码,编译耗时长,我们也用不到,vim编辑上面源码目录里...

Linux 安装 Boost

一、安装依赖 本机测试环境 ubuntu 20。 安装编译工具: 1 sudo apt install gcc g++ 安装依赖库: 1 sudo apt install mpi-default-dev libicu-dev libbz2-dev 二、编译安装 B2 是Boost.Build的简写,目的在于使得编译C++项目更加便捷. Boost库的源码编译采用了B2工具....

Linux 制作使用动态库

一、制作动态库 使用 C++ 程序制作动态库和直接编译这个程序的命令一样,只是参数稍微不同。如果代码里边用到了线程库在制作动态库的时候不需要链接 -lpthread 或者 -pthread,在使用的时候链接就行。下面是制作动态库的 Linux 命令: 1 g++ -fPIC -shared demo.cpp -o libdemo.so -std=c++11 动态库命名需要以 libx...

C++ 左值与右值

一、引言 左值(lvalue):表示具名对象或内存中已有的资源,通常可以在表达式中多次使用。例如,一个变量 a 或数组元素等都属于左值。 右值(rvalue):通常指临时对象或表达式求值结果,它们没有持久化存储,往往在使用后即被销毁。例如,函数返回的临时对象或字面常量。 拷贝:在拷贝构造和拷贝赋值中,程序会分配新的内存并将源对象中的数据完整地复制到目标对象中。...

Linux 信号机制

一、引言 Linux 信号机制是进程间通信的一种方式,用于在不同进程之间传递信息。它通过向目标进程发送一个特定的信号来触发目标进程执行相应的处理操作。Linux 内核中实现信号机制的关键是信号处理函数和信号传递,每个进程都有一个信号表来表示该进程对不同信号的默认处理方式。 信号的处理函数等都是进程间级共享的。 执行信号的动作称为信号递达,信号产生到递达之间的状态称为信号未决。当一个进程...

僵尸进程和孤儿进程

一、引言 进程一般都是由父进程创建和回收,如果一个进程创建之后不进行回收就会一直占用资源,包括 PCB。 二、孤儿进程 一个进程还在执行,而他的父进程已经退出了,那么这个进程就会成为孤儿进程。孤儿进程会由 init 进程收养,之后当孤儿进程结束时也有 init 进程回收。 孤儿进程会拖累 init 进程,但是对系统的危害不大。 三、僵尸进程 一个进程执行完毕之后,它的父进程没有退...

C++ 标准库条件变量用法

一、引言 在多线程编程中,经常会有进程之间相互依赖的情况,最典型的情况就是生产者消费者模型。 二、条件变量 如果线程 A 的部分代码的执行需要依赖于线程 B 中的代码,线程 A 就需要等待线程 B 执行了被依赖的代码之后才可以执行,所以线程 A 需要一种方法可以在线程 B 中的代码执行完成后得到通知。这时就可以使用条件变量。 以生产者消费者模型为例 1 2 3 4 using na...

C++ 标准库信号量用法

一、引言 信号量就像一个原子类型的整型全局变量,可以进行增减,但是同时只能有一个线程进行操作。它也适用于生产者消费者模型。它是 C++20 引入的,编译必须使用 G++ 11 以上。 C++ 的信号量不需要手动销毁。 二、信号量 1 2 3 4 5 #include <semaphore> #define MAX_SEM 2 counting_semaphore<M...