- 博客(12)
- 收藏
- 关注
原创 配置参数管理类制作
一个参数的基本状态有:名称,值,备注描述 ,以ConfigVarBase类来描述每个一个参数的基本特性,其派生类ConfigVar 则是具体实现可以对每一个参数的字符和类型值之间的转换管理。五、最后则是直接对各个参数进行使用了,例如直接解析ini 文件或者xml 等类型文件,将其字串读取后直接赋值给CConfigParam类中的对应参数直接进行解析,同样也可以将值直接设置给对应参数使其转换成string类型,可以反写回配置文件中。四、可以实现一个所以参数管理,对所有的参数进行管理。就可以获取到参数中的值。
2024-01-18 00:28:38
528
原创 c++中使用python编译时undefined reference to “openpty“
在c++项目中引用python3.7 ,然而在centos7 使用cmake 乘车build 目录后make编译时无法识别一些基础库函数。 其中python3.7 使用源码安装在/usr/local/python3,起初以为编译过程中python3 编译出错问题所致,然而多次重编译后安装,问题同样存在。后追踪源码等一系列XXOO后发现os_openpty_impl等函数就对标准库中openpty等的使用,而这些标准库函数时编译在libutlil.so 中,故可能是python3使用了标...
2021-04-12 15:43:40
1596
原创 linux下在没有core文件时利用系统日志和map文件定位core 问题
背景说明: 在程序产生了奔溃,而 未打开产生core dump配置(即ulimit -c unlimited)等,或者打开了core dump 配置而产生的core文件过大无法拷贝或者难以从现场拿回。开发人员通过日志确认问题时,很多时候因日志注释不够全面或者core时把日志给截断了而导致日志不全,难以分析。方法说明: Linux 环境中如果发生Segmentation fault等问题core dump 时,在系统日志中一般都可以存储日志信息,而且信息中存在有一个符号地址,该地...
2021-02-10 13:38:08
405
原创 mount 成功后断网状态下程序访问远程目录被卡死
背景说明: 最近在使用mount远程目录的方式向远程机器写文件操作,当mount 成功后拔除网线或其它断网导致同远程环境之间实现网络断开,在此程序如果去操作被mount的目录程序卡滞,或者程序直接挂起,当恢复网络后程序继续运行。问题分析: 在mount 需要去写远程文件时,程序会去被mount的目录下进行判断用以存储文件的子目录是否存在,或者直接去创建文件目录,或者创建文件,进而会调用到标准库中的access,mkdir 等标准函数, 而在访问被mount的目录时,实则是通过RPC...
2021-02-08 16:23:07
3134
1
原创 C++ SOCKET 网络编程之TCP方式图片等文件传输
利用网络传输文件是常用的功能,本文使用tcp 方式实现文件的传输。其文件树结构为:.├── base│ ├── data_info.h│ └── file_operation.h├── client│ ├── 1.jpg│ ├── client_tcp.h│ └── file_client.c└── server ├── file_server.c └── sever_tcp.h1、base目录下为文件传输的数据结构以及文件操作接口,其源码如
2020-12-17 10:50:49
3426
1
原创 如何设计一个C++类,要求该类不能被继承
方法一:使用一个构造和析构函数都是私有的一个基类IAssistant,且将被设计不能继承的FinalClass类设置成该基类IAssistant的友元类;之后FinalClass以虚继承的方式继承该基类IAssistant;虚继承的功能是:当出现了菱形继承体系的时候,子孙类不会继承多个原始祖先类;使用虚继承会导致基类的初始化任务必须由继承体系中最底层的类完成,即FinalClass类的子类声明对象时,必须直接调用IAssistant类中的构造函数,而不是先调用FinalClass类的构造函数,然后
2020-12-04 15:21:51
129
原创 Docker 介绍说明以及案例
Docker Docker是什么 Docker是一种虚拟化技术,其在容器的基础上进一步封装了文件系统、网络互联、进程隔离等等,从而极大地简化了容器的创建和维护。Docker使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,实现进程隔离、文件系统隔离、网络隔离等。Docker 底层的核心技术包括 Linux 上的命名空间(Namespaces)、控制组(Contro...
2020-11-10 15:09:30
172
原创 C++11 写一个线程池
多并发时避免系统不断的创建和销毁线程,过度消耗资源、切换等,一般都使用线程池来管理线程。可以让一个线程重复执行多个任务而提高效率,话不多说使用c++11 特性写了一个线程词,直接上代码记录一下,轮子就可以复用啦! 1、在写线程池之前先上一个单例模式,为线程池做单例准备: singleton.h#pragma once#includ...
2020-03-26 22:51:22
288
原创 多级目录多文件的makefile 编辑
记录下多级目录的makefile 编辑代码结构目录: .├── app│├── CApplication.cpp│└── CApplication.h├── main.cpp├── makefile└── untis ├── CSingeThread.cpp └── CSingeThread.h将makefile 放在同main...
2019-12-21 23:38:50
265
原创 qt停靠窗创建
停靠窗口在界面编辑中经常使用到,其创建过程一般如下: 1、创建一个QDockWidget对象的停靠船体 2、设置此停靠窗体的属性,如setFeatures() 及setAllowedAreas(). 3、新建一个要插入的停靠窗体控件。常常有QListWidget、QTextEdit.4、将控件插入到停靠窗体,调用QDockWidget的setWidget()方法。 5、
2017-03-10 23:36:53
552
原创 protubuf的简知
1. Protobuf简介Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。优点:1. Protobuf 有如 XML,不过它更小、更快、也更简单。定义
2016-07-04 10:08:09
1109
原创 vimrc 配置
vim编辑器如若需要很好的使用,则必须配置好vimrc文件,如下为个人最近配置,包含基本的命令,ctag,映射等 1 set nocompatible 2 "source $VIMRUNTIME/mswin.vim 3 "set guifont=Courier:h10 4 "source ~/.vim/indent/verilog.vim 5 set guifont=A
2016-06-17 16:19:29
361
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人