rpm 常用命令及问题处理 常用命令 rpm –qf 的命令全称是 rpm --queryformat ,格式为rpm --queryformat [QUERYFMT] , 其中QUERYFMT是一系列rpm查询标志,可以通过rpm --querytags命令查询有哪些标志可以使用. rpm -qa 的默认格式为rpm -qa --qf '%{name}-%{version}- 2022-02-11 devops
定位进程被kill或创建的父进程 有时进程会被其他服务或监控脚本莫名其妙的kill,为了找到真正发出kill或pkill信号的进程,我们可以使用linux下的audit工具来捕获发出创建或kill进程的父进程信息。 审核系统(audit)包含两个主要部分:用户空间的应用程序、实用程序,以及 kernel-side 系统调用处理。Kernel 的组件从用户空间的应用程序接受系统调用,并且通过三个过滤器中的一个过滤器来进行筛选: us 2022-01-27 devops
个人开发基本原则 cpp构造函数 不要在构造函数中注册任何回调; 不要在构造函数中把 this 传给跨线程的对象 1因为在构造函数执行期间对象还没有完成初始化,如果 this被泄露(escape)给了其他对象(其自身创建的子对象除外),那么别的线程有可能访问这个半成品对象,这会造成难以预料的后果 智能指针 shared_ptr 是管理共享资源的利器,需要注意避免循环引用,通常的做法是 owner 持有指向 chi 2022-01-07 软件开发
typora配置标题自动添加序号 依次点击以下按钮进入typora主题目录文件—》偏好设置—》外观—》打开主题文件夹 在主题目录创建 base.user.css 文件 在base.user.css 文件中增加以下内容 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 2021-12-22 devops
c++11 std::bind 详解 1. 概述 std::bind 函数定义在头文件中,是一个函数模板,它就像一个函数适配器,接受一个可调用对象(callable object),生成一个新的可调用对象来“适应”原对象的参数列表。一般而言,我们用它可以把一个原本接收N个参数的函数fn,通过绑定一些参数,返回一个接收M个(M可以大于N,但这么做没什么意义)参数的新函数。同时,使用std::bind函数还可以实现参数顺序调整等操作。 2 2021-08-12 软件开发 c++ c11
unique_ptr和shared_ptr及weak_ptr的使用 1. unique_ptr1.1 初始化方式 直接初始化1unique<T> myPtr(new T); //ok。但不能通过隐式转换来构造,如unique<T> myPtr = new T()。因为unique_ptr构造函数被声明为explicit。 移动构造1unique<T> myOtherPtr = std::move(myPtr);但不允许复制构造 2021-08-09 软件开发 c++ c11
指针精髓 1. 指针的定义程序运行时,每一个变量的数据都是保存在内存的一个确定位置,可以用&操作符取得这个内存位置的值。32位操作系统上,这个值实际上就是一个32位的整数。 12int iA = 30;cout<<”iA变量的内存地址:”<<&iA<<endl; 有时候我们需要把这个地址也保存起来,以实现在程序中直接使用。如果每次都对变量取地址,显得不方便 2021-05-17 软件开发 c++ c
指针精髓 1. 指针的定义程序运行时,每一个变量的数据都是保存在内存的一个确定位置,可以用&操作符取得这个内存位置的值。32位操作系统上,这个值实际上就是一个32位的整数。 12int iA = 30;cout<<”iA变量的内存地址:”<<&iA<<endl; 有时候我们需要把这个地址也保存起来,以实现在程序中直接使用。如果每次都对变量取地址,显得不方便 2021-05-17 软件开发 c++ c
二叉树 AVL树 B树 B+树 红黑树等算法树介绍 二叉树二叉树是一种特殊的有序树:每个节点至多有两个分支(子节点),分支具有左右次序,不能颠倒。 两种特殊的二叉树: 完全二叉树:除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点(注意是右边,而不能是左边缺少)。 满二叉树:每一层都是满的(除了最后一层,这里的最后一层是指叶节点)。 二叉查找树(Binary Search Tree)二叉查找树(Binary S 2021-05-10 算法与数据结构 算法