摘要:
参考资料 1. docker 修改使用国内镜像源
阅读全文
posted @ 2022-04-18 10:52
苏格拉底的落泪
阅读(227)
推荐(0)
摘要:
参考资料 1. cmake应用:从编译过程理解CMake
阅读全文
posted @ 2022-04-18 08:50
苏格拉底的落泪
阅读(83)
推荐(0)
摘要:
add_definitions 命令原型: add_definitions(-DFOO -DBAR ...) 说明: 在源文件的编译中添加 -D 标志。 测试用例 1. 假设代码中通过USE_MACRO 作为区分是否编译部分模块的代码。 ... #ifdef USE_MACRO ... #endif
阅读全文
posted @ 2022-04-17 14:08
苏格拉底的落泪
阅读(4888)
推荐(0)
摘要:
判断编译器类型 1. cmake命令是不区分大小写的,但是变量区分。 2. 判断编译类型:CMakeLists.txt 文件内容如下: cmake_minimum_required (VERSION 3.12.2) project (list_cmd_test) message("${CMAKE_C
阅读全文
posted @ 2022-04-17 10:53
苏格拉底的落泪
阅读(1273)
推荐(0)
摘要:
参考资料 1. add_compile_options和CMAKE_CXX_FLAGS的区别
阅读全文
posted @ 2022-04-16 23:01
苏格拉底的落泪
阅读(314)
推荐(0)
摘要:
命令list 说明: Reading list(LENGTH <list> <out-var>) list(GET <list> <element index> [<index> ...] <out-var>) list(JOIN <list> <glue> <out-var>) list(SUBL
阅读全文
posted @ 2022-04-16 22:03
苏格拉底的落泪
阅读(202)
推荐(0)
摘要:
std::shared_mutex 1. 原型: 读写锁属性相关理论:【Liux系统编程】读写锁 1)测试用例: #include <iostream> #include <mutex> #include <shared_mutex> #include <thread> class ThreadSa
阅读全文
posted @ 2022-04-16 15:31
苏格拉底的落泪
阅读(248)
推荐(0)
摘要:
std::recursive_mutex(递归锁) 1. 类原型: Defined in header class recursive_mutex; recursive_mutex。在此期间,线程可能会对lock或try_lock进行额外的调用。当线程进行匹配数量的解锁调用时,所有权期结束。 当一个
阅读全文
posted @ 2022-04-16 13:18
苏格拉底的落泪
阅读(535)
推荐(0)
摘要:
message 1. 一般命令 message([<mode>] "message text" ...) 说明:在日志中记录指定的消息文本。如果给出了多个消息字符串,则将它们连接为单个消息,字符串之间没有分隔符。 可选的 < mode> 关键字确定消息的类型,该类型会影响消息的处理方式: FATAL
阅读全文
posted @ 2022-04-16 10:32
苏格拉底的落泪
阅读(974)
推荐(0)
摘要:
参考资料 1. cmake的add_custom_command和add_custom_target指令 1. cmake的add_custom_command和add_custom_target指令.md 2. cmake 常用变量和常用环境变量查表手册
阅读全文
posted @ 2022-04-15 10:30
苏格拉底的落泪
阅读(243)
推荐(0)
摘要:
生成动态库或静态库 add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [source1] [source2 ...]) STATIC: 生成静态库 SHARED: 生成动态库 EXCLUDE_FROM_ALL:add_l
阅读全文
posted @ 2022-04-15 10:23
苏格拉底的落泪
阅读(4998)
推荐(0)
摘要:
命令格式add_subdirectory (source_dir [binary_dir] [EXCLUDE_FROM_ALL])添加一个子目录并构建该子目录。命令解析source_dir必选参数。该参数指定一个子目录,子目录下应该包含CMakeLists.txt文件和代码文件。子目录可以是
阅读全文
posted @ 2022-04-14 23:03
苏格拉底的落泪
阅读(839)
推荐(0)
摘要:
aux_source_directory 收集指定目录中所有源文件的名称,并将列表存储在提供的 variable 变量中。 该命令旨在供使用显式模板实例化的项目使用。 模板实例化文件可以存储在Templates子目录中,并使用此命令自动收集,以避免手动列出所有实例化。 试图使用此命令来避免编写库或可
阅读全文
posted @ 2022-04-14 22:41
苏格拉底的落泪
阅读(1461)
推荐(0)
摘要:
include_directories 给源文件添加头文件搜索路径:将指定目录添加到编译器的头文件搜索路径之下,指定的目录被解释成当前源码路径的相对路径。 1. include_directories:当前CMakeList.txt中的所有目标以及所有在其调用点之后添加的子目录中的所有目标将具有此头
阅读全文
posted @ 2022-04-14 21:08
苏格拉底的落泪
阅读(3099)
推荐(0)
摘要:
设置普通变量 1. 命令格式 set(<variable> <value>... [PARENT_SCOPE]) 说明:将变量variable设置为值<value>...,变量variable的作用域为调用set命令的函数或者当前目录,如果使用了PARENT_SCOPE选项,意味着该变量的作用域会传
阅读全文
posted @ 2022-04-14 20:48
苏格拉底的落泪
阅读(443)
推荐(0)
摘要:
project project(<PROJECT-NAME> [<language-name>...]) project(<PROJECT-NAME> [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]] [DESCRIPTION <project-desc
阅读全文
posted @ 2022-04-14 20:40
苏格拉底的落泪
阅读(229)
推荐(0)
摘要:
调用基类的虚函数 代码实现: #include <iostream> class Base { public: virtual void f() { std::cout << "Base::base()" << std::endl; } }; class Test : public Base { p
阅读全文
posted @ 2022-04-14 11:00
苏格拉底的落泪
阅读(133)
推荐(0)
摘要:
读写锁 读写锁由「读锁」和「写锁」两部分构成,如果只读取共享资源用「读锁」加锁,如果要修改共享资源则用「写锁」加锁。所以,读写锁适用于能明确区分读操作和写操作的场景。 读写锁的工作原理是: 当「写锁」没有被线程持有时,多个线程能够并发地持有读锁,这大大提高了共享资源的访问效率,因为「读锁」是用于读取
阅读全文
posted @ 2022-04-12 22:51
苏格拉底的落泪
阅读(479)
推荐(0)
摘要:
互斥锁与自旋锁 多线程访问共享资源的时候,避免不了资源竞争而导致数据错乱的问题,所以我们通常为了解决这一问题,都会在访问共享资源之前加锁。 最底层的两种就是会「互斥锁和自旋锁」,有很多高级的锁都是基于它们实现的,你可以认为它们是各种锁的地基,所以我们必须清楚它俩之间的区别和应用。 加锁的目的就是保证
阅读全文
posted @ 2022-04-12 22:44
苏格拉底的落泪
阅读(342)
推荐(0)
摘要:
for循环 在 perl 中,redo 用于立即重新开始当前的循环迭代,而不进行条件测试和循环控制变量的更新。redo 通常用于在特定条件下重复某个循环迭代。下面是一些示例,展示了如何使用 redo 循环控制语句: 控制语句 描述 next语句 停止执行从next语句的下一语句开始到循环体结束标识符
阅读全文
posted @ 2022-04-12 10:59
苏格拉底的落泪
阅读(36)
推荐(0)
摘要:
#include <iostream> class Base { public: virtual void f() { std::cout << "Base::base()" << std::endl; } }; class Test : public Base { public: void f()
阅读全文
posted @ 2022-04-12 10:55
苏格拉底的落泪
阅读(230)
推荐(0)
摘要:
转移数据修改docker默认存储位置 参考资料 1. 转移数据修改docker默认存储位置
阅读全文
posted @ 2022-04-09 11:30
苏格拉底的落泪
阅读(34)
推荐(0)
摘要:
mon命令 查看mon选举: [root@ecos75r018-meijia-31-161 ~]# ceph quorum_status -f json-pretty { "election_epoch": 17, "quorum": [ 0 ], "quorum_names": [ "ecos75
阅读全文
posted @ 2022-03-30 20:55
苏格拉底的落泪
阅读(470)
推荐(0)
摘要:
docker 命令 docker stop $(docker ps -a -q) // stop停止所有容器 docker rm $(docker ps -a -q) 删除所有已经停止的容器 docker rmi $(docker images -q)删除所有镜像 docker ps // 查看所有
阅读全文
posted @ 2022-03-28 09:44
苏格拉底的落泪
阅读(108)
推荐(0)
摘要:
共享内存 下面是一个简单明了的 C++ demo,演示使用 shm_open + mmap 创建共享内存并在 mmap 后立即调用 shm_unlink,从而实现“匿名共享内存”(仅当前进程使用,路径消失,但映射依然有效)。 #include <fcntl.h> // shm_open #inclu
阅读全文
posted @ 2022-03-21 10:38
苏格拉底的落泪
阅读(115)
推荐(0)
摘要:
堆排序 作为选择排序的改进版,堆排序可以把每一趟元素的比较结果保存下来,以便我们在选择最小/大元素时对已经比较过的元素做出相应的调整。堆排序是一种树形选择排序,在排序过程中可以把元素看成是一颗完全二叉树,每个节点都大(小)于它的两个子节点 。 当每个节点都大于等于它的两个子节点时,就称为大顶堆,也叫
阅读全文
posted @ 2022-03-19 17:53
苏格拉底的落泪
阅读(156)
推荐(0)
摘要:
预读解析② static void ondemand_readahead(struct readahead_control *ractl, struct file_ra_state *ra, bool hit_readahead_marker, unsigned long req_size) { s
阅读全文
posted @ 2022-03-10 11:07
苏格拉底的落泪
阅读(41)
推荐(0)
摘要:
debuginfo子包设置 _debuginfo_subpackages 是 RPM(Red Hat Package Manager) 打包过程中用于自动生成调试信息子包的宏。当该值设置为 1 时,打包工具会在构建过程中提取二进制文件和库的调试符号和相关的源代码信息。自动创建一个单独的调试信息子包(
阅读全文
posted @ 2022-03-01 21:02
苏格拉底的落泪
阅读(112)
推荐(0)
摘要:
缓存变量 参考资料 1. CMake语法—缓存变量(Cache Variable)
阅读全文
posted @ 2022-03-01 20:40
苏格拉底的落泪
阅读(69)
推荐(0)
摘要:
yum命令 查看提供某个命令的rpm包: # yum provides gcc Loading mirror speeds from cached hostfile * base: mirrors.bupt.edu.cn * centos-sclo-rh: mirrors.nju.edu.cn *
阅读全文
posted @ 2022-02-28 22:50
苏格拉底的落泪
阅读(48)
推荐(0)
摘要:
https://www.jianshu.com/u/9456fecb5f96 1 #include <algorithm> 2 #include <atomic> 3 #include <cstddef> 4 #include <iostream> 5 #include <thread> 6 #in
阅读全文
posted @ 2022-02-28 10:48
苏格拉底的落泪
阅读(376)
推荐(0)
摘要:
cmake_dependent_option cmake_dependent_option(<option> "<help_text>" <value> <depends> <force>) 说明: 如果<depends>中以分号分割的条件列表全部为true,则使<option>对用户可用。否则,名
阅读全文
posted @ 2022-02-24 20:51
苏格拉底的落泪
阅读(77)
推荐(0)
摘要:
radosgw-admin 命令 删除bucket: radosgw-admin bucket rm --bucket=test 删除bucket所有对象: radosgw-admin bucket rm --bucket=bucketname --purge-objects --bypass-gc
阅读全文
posted @ 2022-02-24 14:50
苏格拉底的落泪
阅读(1061)
推荐(0)
摘要:
iptables 禁止 IP和端口 1. 禁止指定 IP iptables -I INPUT -s 10.0.28.15 -j DROP 2. 禁止指定 IP段 iptables -I INPUT -s 10.0.28.15/24 -j DROP 3. 禁止指定 IP和端口 iptables -I
阅读全文
posted @ 2022-02-22 16:53
苏格拉底的落泪
阅读(4861)
推荐(0)
摘要:
Linux 远程挂载 Ceph RBD 磁盘 创建存储池 1 sudo ceph osd pool create <pool-name> 128 128 2 sudo ceph osd pool application enable <pool-name> rbd View Code 查看独占锁信息
阅读全文
posted @ 2022-02-22 14:57
苏格拉底的落泪
阅读(790)
推荐(0)
摘要:
字节序 与同一台计算机上的进程进行通信时,一般不用考虑字节序,字节序是一个处理器架构特性,用于指示像整数计算的大数据类型内部的字节如何排序。 假设上图图 中在内存 0x1000 到 0x1003 这连续的 4 个字节保存了数据,这段数据对应的数据类型是 int 类型。我们知道 int 类型的数据在大
阅读全文
posted @ 2022-01-15 14:53
苏格拉底的落泪
阅读(206)
推荐(0)
摘要:
修改集群配置 启动 ceph 存储集群时,各守护进程都从同一个配置文件(默认的 ceph.conf )里查找它自己的配置。ceph.conf 中可配置参数很多,有时我们需要根据实际环境对某些参数进行修改。 修改的方式分为两种:直接修改 ceph.conf 配置文件中的参数值,修改完后需要重启 Cep
阅读全文
posted @ 2022-01-11 17:34
苏格拉底的落泪
阅读(1587)
推荐(0)
摘要:
删除mon 当你想要删除一个 mon 时,需要考虑删除后剩余的 mon 个数是否能够达到法定人数。 1、停止 mon 进程: systemctl stop ceph-mon@node01 2、从集群中删除 mon: ceph mon remove node01 3、从 ceph.conf 中移除 m
阅读全文
posted @ 2022-01-11 15:35
苏格拉底的落泪
阅读(489)
推荐(0)
摘要:
参考资料 1. 存储基础和Ceph
阅读全文
posted @ 2022-01-11 10:33
苏格拉底的落泪
阅读(82)
推荐(0)
摘要:
DNE状态解析 删除osd时,如果没有在crush中删除,osd可能会出现DNE的状态,具体解决方法: 1)过滤处于DNE状态的osd: ceph osd tree | grep DNE 2)osd DNE状态清楚方法: ceph osd crush remove osd.id 注意: 删除一块磁盘
阅读全文
posted @ 2022-01-04 17:14
苏格拉底的落泪
阅读(595)
推荐(0)