C++
涟漪、
这个作者很懒,什么都没留下…
展开
-
ODB框架注意事项
transaction que(db->begin());result r (db->query<server>(query::ip.is_not_null()));que.commit();//r.size()=18*********原创 2021-06-17 14:31:20 · 292 阅读 · 0 评论 -
C++框架ODB安装注意事项
yum install libcutl libcutl-devel -yyum -y install gcc-plugin-devel原创 2021-06-02 22:59:37 · 438 阅读 · 0 评论 -
libev,libhv
git clone https://gitee.com/mirrors/libev.gitgit clone https://gitee.com/libhv/libhv.git原创 2021-05-26 11:10:39 · 318 阅读 · 0 评论 -
安装muduo
yum -y install cmake boost-develgit clone https://gitee.com/lianyi_work/muduo.gitcd muduo./build.sh原创 2021-05-25 17:23:08 · 289 阅读 · 0 评论 -
使用Boost将stl map放入共享内存
最近需要用到进程间共享内存,同时将容器放入共享内存中方便操作,摸索如下#include <boost/interprocess/managed_shared_memory.hpp>#include <boost/interprocess/allocators/allocator.hpp>#include <boost/interprocess/containers/map.hpp>#include <boost/interprocess/contain.原创 2021-03-11 15:48:47 · 1035 阅读 · 0 评论 -
C++框架与库资源
Jason frozen : C/C++的Jason解析生成器Jansson :进行编解码和处理Jason数据的C语言库jbson :C++14中构建和迭代BSON data,和Json 文档的库JeayeSON:非常健全的C++ JSON库,只包含头文件JSON++ : C++ JSON 解析器json-parser:用可移植的ANSI C编写的JSON...转载 2021-02-25 17:19:50 · 351 阅读 · 0 评论 -
c++ fromhex tohex简单实现
inline int fromHex(uint c){ return ((c >= '0') && (c <= '9')) ? int(c - '0') : ((c >= 'A') && (c <= 'F')) ? int(c - 'A' + 10) : ((c >= 'a') && (c <= 'f')) ? int(c - 'a' + 10) : /* otherwise */ .原创 2020-12-29 17:14:08 · 1263 阅读 · 0 评论 -
String FromHex()实现
inline int fromHex(uint c){ return ((c >= '0') && (c <= '9')) ? int(c - '0') : ((c >= 'A') && (c <= 'F')) ? int(c - 'A' + 10) : ((c >= 'a') && (c <= 'f')) ? int(c - 'a' + 10) : /* othe.原创 2020-12-25 16:15:16 · 1183 阅读 · 0 评论 -
安装Linux虚拟机后配置中文显示环境小结
首先,需要确认目标机器中,是否含有可支持的中文语言包若不含以上输出,则需要安装语言包,以Centos7为例 yum groupinstall "fonts" -y准备工作完成后,查看本机配置可见,目标机器中环境配置非中文,故而修改语言配置文件vi /etc/locale.conf修改为如下:使用source或者". ",执行文件配置,使之立即生效此时,使用VMware中的SSH连接到目标机器,便已经可以正确显示中文...原创 2020-10-28 10:49:46 · 4682 阅读 · 0 评论 -
获取执行程序的原路径(绝对路径)
Boost.filesysteminitial_path()与current_path(),只能获取Shell传入的执行路径,不在执行程序当前路径时导致错误Linux系统函数getpwd(),同Boostreadlink(),可实现获取完整路径,因为从当前执行程序文件中读取路径string ReturnEXERoute(){ char url[1024]{}; int rslt = readlink("/proc/self/exe", url, 1023); if (rslt原创 2020-10-28 09:09:31 · 4469 阅读 · 0 评论 -
c++ ODB连接MYSQL操作中文乱码问题
使用ODB过程中,修改含有中文的数据表行时,会使中文呈现出乱码问题其一,数据库连接时,需要明确指定客户端编码格式,需要与MYSQL服务器端保持一致,推荐使用utf8auto_ptr<database> db(new odb::mysql::database(m_user, m_password, m_databaseName, m_databaseURL, m_databasePort, 0, "utf8"));其二,修改或者读取含有中文的列时,亦需要将编码与服务端统一,此时可以使原创 2020-10-16 17:42:05 · 3973 阅读 · 0 评论 -
log4cplus日志格式输出配置
layout是控制日志输出格式的log4cplus.appender.R.layout=log4cplus::PatternLayoutlog4cplus.appender.R.layout.ConversionPattern=[%D{%Y-%m-%d%H:%M:%S,%Q}] [%t] %-5p - %m%n格式包括三种类型:1.) SimpleLayout 是一种简单格式的布局器,在输出的原始信息之前加上LogLevel和一个"-"。2.) TTCCLayout 其格式由时间..原创 2020-10-16 16:51:33 · 6107 阅读 · 0 评论 -
epoll+多线程服务器
#include <cstdio>#include <thread>#include <string>#include <signal.h>#include <unistd.h>#include <boost/signals2.hpp>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#inclu.原创 2020-10-14 17:36:00 · 4873 阅读 · 0 评论 -
boost之signals2库使用例程
ClearCacheOperator.h#pragma once#include <vector>#include <string>#include <boost/signals2.hpp>using namespace std;class ClearCacheOperator{public: typedef boost::signals2::signal<void()> signal_t; typedef signal_t::sl.原创 2020-10-12 17:15:22 · 5016 阅读 · 0 评论 -
Boost库signals测试
测试Boost库信号槽传参,在connect时必须使用占位符,确认传递参数个数BOOST_STATIC_CONSTEXPR boost::arg<1> _1;BOOST_STATIC_CONSTEXPR boost::arg<2> _2;BOOST_STATIC_CONSTEXPR boost::arg<3> _3;BOOST_STATIC_CONSTEXPR boost::arg<4> _4;BOOST_STATIC_CONSTEXPR bo.原创 2020-10-12 10:25:13 · 4700 阅读 · 0 评论 -
log4cplus接口封装
Log.h#pragma once#include <memory>/// 记录追踪日志#define LOG_TRACE(msg) (Log::GetInstance()->Trace(msg));/// 记录调试日志#define LOG_DEBUG(msg) (Log::GetInstance()->Debug(msg));/// 记录信息日志#define LOG_INFO(msg) (Log::GetInstance()->Info原创 2020-09-29 17:38:59 · 7289 阅读 · 0 评论 -
c++ ODB操作测试
person.h#pragma once#include <string>#include <odb/core.hxx>#include <odb/tr1/memory.hxx>using namespace std;using std::tr1::shared_ptr;#pragma db objectclass Person {public: Person() {} Person(string a, string b) : name(a原创 2020-09-27 17:08:14 · 7274 阅读 · 0 评论 -
c++、boost字符串操作
c++STL+boost可以实现一些常用的字符串操作,记录如下#include <iostream>#include <string>#include <boost/algorithm/string.hpp>#include <boost/xpressive/xpressive_dynamic.hpp>using namespace std;using namespace boost;using namespace boost::xpre.原创 2020-09-18 17:16:09 · 6779 阅读 · 0 评论 -
librsync增量更新api测试
简单测试librsync几个接口,流程如下:rs_sig_file()创建签名文件 rs_loadsig_file()加载签名文件至内存 rs_build_hash_table()建立哈希表 rs_delta_file()同步增量文件progress_timer t; cout << "testconsole.................." << endl; cout << "version: " << rs_librsyn原创 2020-09-16 17:08:45 · 6889 阅读 · 0 评论 -
libmysql方法
基本操作oid ReadFromDatabase(MYSQL* connection){ int result; result = mysql_query(connection, "select ip,port,census,starts,timeout,domain,code from server group by ip;"); if (result != 0) { std::cout << mysql_error(connection) << std::e原创 2020-09-15 10:48:37 · 6713 阅读 · 0 评论 -
libcurl部分使用方法
POSTvoid NetworkOperator::PostData(string url, string data){ m_curl = curl_easy_init(); if (m_curl == NULL) { throw runtime_error("init the curl false,please check"); } curl_slist* pList = NULL; pList = curl_slist_append(pList, "Content-Type:ap原创 2020-09-15 08:57:39 · 6695 阅读 · 0 评论 -
C++文件系统初探
简单的读取分割设置 boost::filesystem::path p("/etc/hosts"); boost::filesystem::ifstream ifs(p); cout << ifs.is_open() << endl; cout << ifs.rdbuf() << endl; NetworkOperator nop; nop.GetTheRequestVelocity("http://www.atscdn.com:88/ngi.原创 2020-09-10 08:38:03 · 6445 阅读 · 0 评论 -
c++11 concurrency备注
参考地址:https://www.cnblogs.com/haippy/p/3284540.html原创 2020-08-01 09:13:24 · 6346 阅读 · 0 评论