![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 81
心怀梦想
多多思考,多多努力
展开
-
log4clpus简单测试和配置文件说明
也可以控制logger名称的显示层次,比如"%c{1}“时输出"logger”,其中数字表示层次。格式对齐,比如"%-10m"时表示左对齐,宽度是10,当然其它的控制字符也可以相同的方式来使用,比如"%-12d","%-5p"等等。“%D”,显示本地时间,比如:“2021-06-30 18:55:45”,%d显示标准时间。“%l”,输出当前记录器所在的文件名称和行号,比如"main.cpp:51"%S – 表示当前时刻的多少秒(0-59),如"32"“%L”,输出当前记录器所在的文件行号,比如"51"原创 2022-10-16 20:21:04 · 1384 阅读 · 0 评论 -
结构体与联合体面试题
结构体对齐的作用和原因:各个硬件平台对存储空间的处理上有 很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问一个没有进行对齐的变量的时候会发生错误,那么在这种 架构下编程必须保证字节对齐,其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台要求对数据存放进行对齐,会在存取效率上带来损失。比如有些 平台每次读都是从偶地址开始,如果一个int型(...原创 2019-07-06 17:07:29 · 669 阅读 · 2 评论 -
C++智能指针
std::weak_ptr没有重载操作符*和->,因为它不共享指针,不能操作资源,所以它的构造不会增加引用计数,析构也不会减少引用计数,它的主要作用就是作为一个旁观者监视shared_ptr中管理的资源是否存在。std::unique_ptr是一个独占型的智能指针,它不允许其他的智能指针共享其内部的指针,可以通过它的构造函数初始化一个独占智能指针对象,但是不允许通过赋值将一个unique_ptr赋值给另一个unique_ptr。通过一个weak_ptr对象构造了一个可用的weak_ptr实例对象。转载 2022-10-07 01:16:20 · 4040 阅读 · 0 评论 -
Linux死锁检测
死锁是指两个或者两个以上的线程在执行的过程中,因争夺资源产生的一种互相等待的现象. 例如: A线程占有1号锁,B线程占有2号锁, 当A想进一步获取2号锁, B想获取1号锁. A.B线程都进入等待对方释放锁的等待中, 造成了死锁.(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。业务无法正常处理, 业务日志输出不完整.如何检测程序中是否存在死锁呢? 如果我们能在加锁的时候把线程id和互斥锁做一个绑定, 在解锁的时候做一个解绑定, 用一个线程去实时检测是否出现两个线程绑定到对方原创 2022-06-04 11:39:45 · 1421 阅读 · 1 评论 -
RPC、gRPC的原理、架构、调用过程,特性
随着系统复杂度的增加,我们不得不将一个大的应用拆分为多个服务,这种拆分既包括水平方向拆分(按照功能模块拆分),也包括垂直方向拆分(按照应用所处的层拆分)。RESTful通常使用 http+JSON 或 XML 的格式传输信息,而gRPC采用protobuf传输信息,proto会提供更严格的接口约束条件,安全性更高,对于高并发的场景更适用。由调用方提供要调用的方法,对方网络地址,端口。(2)客户端存根在收到调用后,负责将被调用的方法名、参数等打包并编码成特定格式的能进行网络传输的消息体。转载 2022-10-06 01:11:25 · 524 阅读 · 0 评论 -
PKCS7签名代码
原创 2023-08-21 21:22:41 · 484 阅读 · 0 评论 -
shell 定时 关闭进程服务
#!/bin/bashprocess_name=(ck_Ack_B ck_Cck_D)while truedoDate=$(date "+%Y-%m-%d %H:%M:%S")Time="20:59"time=$(date "+%H:%M")if [ "$Time" = "$time" ];then for var in ${process_name[@]} do...原创 2020-03-07 23:49:53 · 1019 阅读 · 0 评论 -
C++内存检测
1.valgrind的安装使用1.1 简介Valgrind是linux环境下开发应用程序时用于内存调试和性能分析的工具集,其中Memcheck工具可以用来检查C/C++程序中的内存操作错误。本文列举了几种常见的内存操作错误以及Memcheck工具的检测结果,其中包括以下几种类型:使用未初始化的内存内存读写越界内存覆盖读写已经释放的内存内存泄露无法检测出静态内存越界的问题(如...原创 2019-11-18 16:13:31 · 1049 阅读 · 0 评论