![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 51
ztenv
这个作者很懒,什么都没留下…
展开
-
To explain the std::atomic_thread_fence and some demos
【代码】another std::atomic_thread_fence demo。原创 2024-09-10 09:30:00 · 146 阅读 · 0 评论 -
std::atomic_thread_fence description and a simple demo
【代码】std::atomic_thread_fence description and a simple demo。原创 2024-09-10 08:30:00 · 377 阅读 · 0 评论 -
several solutions of producer and consumer
【代码】several solutions of producer and consumer。原创 2024-09-09 09:00:00 · 439 阅读 · 0 评论 -
producer and consumer based on the std::atomic_flag
【代码】producer and consumer based on the std::atomic_flag。原创 2024-09-09 08:30:00 · 182 阅读 · 0 评论 -
counter based on std::atomic
【代码】counter based on std::atomic。原创 2024-09-08 06:00:00 · 135 阅读 · 0 评论 -
producer and consumer based on the std::atomic
【代码】producer and consumer based on the std::atomic。原创 2024-09-08 07:00:00 · 264 阅读 · 0 评论 -
深入理解CMake
深入理解cmake原创 2024-08-13 10:48:46 · 814 阅读 · 1 评论 -
通过设置gcc的flags来捕获异常
然后,就可以不使用gdb来调试即可打印堆栈等详细信息了。即可实现运行程序时捕获异常的目的。原创 2024-07-18 16:55:16 · 117 阅读 · 0 评论 -
linux平台方便的获取当前进程名字的几种方法
vim /proc/pid/status #可以获取name。在main函数中使用变量。在main函数中调用。原创 2024-07-18 10:20:54 · 347 阅读 · 0 评论 -
编译器对C++23的支持程度
详见这里原创 2024-07-02 14:59:05 · 328 阅读 · 0 评论 -
C++23特性一览
【代码】C++23特性一览。原创 2024-07-02 14:53:14 · 1112 阅读 · 2 评论 -
cmake通过PkgConfig查找没有提供cmake的库,并在cmakelists.txt中进行依赖(如:ffmpeg等)
【代码】cmake通过PkgConfig查找没有提供cmake的库,并在cmakelists.txt中进行依赖(如:ffmpeg等)原创 2024-06-02 22:14:58 · 153 阅读 · 0 评论 -
C++23主要特性
c++23主要特性原创 2023-02-16 17:18:00 · 530 阅读 · 0 评论 -
#直播预告 “C++王者归来”系列大咖对谈,带你了解新时代的C++编程语言。2月16、18日19点两场重磅直播欢迎 #视频号:IT阅读排行榜 观看
#直播预告 “C++王者归来”系列大咖对谈,带你了解新时代的C++编程语言。2月16、18日19点两场重磅直播欢迎 #视频号:IT阅读排行榜 观看原创 2023-02-16 09:13:07 · 216 阅读 · 0 评论 -
c++连接mariadb/mysql 数据代码
【代码】c++连接mariadb/mysql 数据代码。原创 2023-02-13 21:26:54 · 454 阅读 · 0 评论 -
简单的有限状态机(FSM)示例二(订阅多个事件,同一个状态可以转换为多个不同的状态)
由此可以,实现了比上次稍微复杂一点的状态机:同一个状态可以向多个不同的状态进行转换。为了保持与前续的一致,所以我们这里依然基于boost的状态机来实现。原创 2022-12-27 11:49:09 · 545 阅读 · 0 评论 -
简单的有限状态机(FSM)的示例一
使用if-else或switch-case判断并设置状态之间的转换,比较小儿科,如果写不好会有很多很多的bug,最后当状态变得很多很复杂的时候,bug可能不好找完,尤其是在加入新的状态以后.有一个明显的优点:就是想怎么改就怎么改,容易上手。有一个明显的缺点:很难扩展新的状态,增加新的事件。原创 2022-12-09 17:45:37 · 622 阅读 · 2 评论 -
手把手教你配置vscode的c++开发环境(wsl + 远程)
一定记得在linux安装gcc/g++开发环境一定记得在linux安装gdb调试工具,有些默认没有安装,即使正确配置了launch.json和task.json,也会报错。。。原创 2022-11-05 12:03:23 · 4162 阅读 · 0 评论 -
手把手教你配置vscode+wsl开发环境
【代码】手把手教你配置vscode+wsl开发环境。原创 2022-11-05 11:13:57 · 2937 阅读 · 0 评论 -
一个好用的double-convertion和bignum库
https://github.com/google/double-conversion原创 2022-11-01 10:44:02 · 347 阅读 · 0 评论 -
C/C++好用的websocket库
libwebsockets原创 2022-09-18 15:51:31 · 4347 阅读 · 0 评论 -
zeromq的frame模型
原创 2022-05-17 20:05:38 · 290 阅读 · 0 评论 -
zeromq的消息模型
原创 2022-05-16 20:31:22 · 249 阅读 · 0 评论 -
zmq 陷阱一览表
zmq 使用常见陷阱原创 2022-05-14 21:04:22 · 235 阅读 · 0 评论 -
Using GCC with MinGW on Windows
In this tutorial, you configure Visual Studio Code to use the GCC C++ compiler (g++) and GDB debugger frommingw-w64to create programs that run on Windows.After configuring VS Code, you will compile and debug a simple Hello World program in VS Code. T...原创 2022-05-07 11:10:22 · 560 阅读 · 0 评论 -
TCP protocol and socket
NAME toptcp - TCP protocolSYNOPSIS top#include <sys/socket.h>#include <netinet/in.h>#include <netinet/tcp.h> tcp_socket = socket(AF_INET, SOCK_STREAM, 0);DESCRIPTION topThis is an implementation of the T原创 2022-03-09 18:42:36 · 537 阅读 · 0 评论 -
netstat 命令详解
netstat命令是常见的查看网络信息的命令,主要包括网络连接的信息、路由表的信息、网卡的信息和广播的信息等;本次不会讲解如何使用netstat命令,详细的使用方法请参见:man netstat本次主要聊一聊网络连接的信息,当使用netstat -anop命令时,输出如下:那么,这些信息主要是什么意思呢?待我一一道来。Proto协议的类型,主要有tcp、tcp6、udp、unix、udplite、raw、sctp等,当然可以通过传相应的协议类型给netstat命令而仅仅显示某种类型的协议,如:原创 2022-03-01 14:25:08 · 9317 阅读 · 3 评论 -
c++11 signal的处理方式, talk is cheap, show me the code
#include <iostream> #include <csignal> void signal_handler(int signal) { std::cout << "signal_handler : " << signal << std::endl; } int main() { std::signal(SIGINT, signal_h...原创 2021-10-29 18:08:27 · 562 阅读 · 0 评论 -
一个强大、高性能、易于使用的format库
Overview{fmt}is an open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams.What users say:Thanks for creating this library. It’s been a hole in C++ for a long time. I’ve used bothboost::formatandloki::SPr...原创 2021-10-28 19:13:44 · 579 阅读 · 0 评论 -
C++生成uuid
#include <iostream>#include <boost/uuid/uuid.hpp>#include <boost/uuid/uuid_io.hpp>#include <boost/uuid/uuid_generators.hpp> int main(){ auto uuid = boost::uuids::random_generator()(); string suuid = boost::uuids::to_string(u原创 2021-09-09 13:35:18 · 1735 阅读 · 0 评论 -
CMakeList中自动编译protobuf文件
可以使用下面的命令:protobuf_generate_cppprotobuf_generate_python例如:find_package(Protobuf REQUIRED)include_directories(${Protobuf_INCLUDE_DIRS})include_directories(${CMAKE_CURRENT_BINARY_DIR})protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS foo.proto)protobuf_g原创 2021-08-24 20:33:57 · 1708 阅读 · 0 评论 -
手把手教你性能优化
详情原创 2021-08-24 18:15:32 · 318 阅读 · 0 评论 -
perf+flame分析程序性能,并生成火焰图。
安装perf工具sudo apt-get install linux-tools-common linux-tools-generic linux-tools-`uname -r`安装flame工具git clone git@github.com:brendangregg/FlameGraph.gitcd ./FlameGraphchmod +x *.plperf命令简介usage: perf [--version] [--help] [OPTIONS] COMMAND [ARGS]原创 2021-08-23 09:55:14 · 737 阅读 · 0 评论 -
升级gcc后,找不到`GLIBCXX_‘ 的问题
问题描述在手动升级gcc后,编译或运程程序可能会存在找不到适当的GLIBCXX版本的问题,(目前我升级到了gcc11.2.0,对应版本是GLIBCXX_3.4.29),在执行命令:strings /usr/lib64/libstdc++.so.6|grep GLIBC |more时, 部分输出如下:GLIBCXX_3.4.18GLIBCXX_3.4.19GLIBCXX_3.4.20GLIBCXX_3.4.21GLIBCXX_3.4.22GLIBCXX_3.4.23GLIBCXX_3.4原创 2021-07-21 14:18:45 · 1508 阅读 · 0 评论 -
GCC 11 的静态分析功能将得到增强
在 GCC 10 中,状态跟踪组件存在很多崩溃错误,其中一个大问题是使用唯一 ID 来跟踪符号值和区域,目前修改为使用唯一对象(单例)来表示符号值和区域。另一个大问题是之前的实现中,符号值和区域被用来表示内存区域的符号访问路径到符号值的映射,目前修改为内存中位偏移群集的映射。GCC 10 中的内存泄漏检测存在很多误报,并且分析器的确切行为因调用而异,由于哈希算法,迭代的顺序将隐式取决于精确的指针值。指针值可能由于地址空间布局随机化而不同,从而导致不同的结果。该部分内容已经重写,新的内存泄漏检测将更少误报,原创 2021-02-08 19:02:00 · 7851 阅读 · 3 评论 -
手把手教你升级gcc到gcc11
gcc10已经支持了绝大部分的C++20的特性,跟着我一起升级gcc到10.x版本,然后尝试学习和使用C++20标准吧,关于C++20标准的特性,请参见:C++20标准下载 gcc源码git clone https://github.com/gcc-mirror/gcc.git安装依赖库待源码下载完成后,进入gcc目录,并切换到10.2.0分支:git checkout releases/gcc-10.2.0然后下载相关的依赖库:./contrib/download_prerequisit原创 2021-01-14 16:32:03 · 5134 阅读 · 4 评论 -
推荐一个c++ REST client库
AboutThis is a simple REST client for C++. It wrapslibcurlfor HTTP requests.Usagerestclient-cpp provides two ways of interacting with REST endpoints. There is a simple one, which doesn't need you to configure an object to interact with an API. Howe..原创 2021-01-13 14:56:54 · 2139 阅读 · 0 评论 -
C++ chrono时间相互转换
#include <cstdint>#include <ctime>#include <iostream>#include <chrono>#include <sstream>#include <iomanip>using namespace std;void time_point_to_duration();void duration_to_time_point();void format_time_point(原创 2021-01-12 15:47:32 · 4301 阅读 · 0 评论 -
日志中__FILE__的路径问题
在C++中使用日志库打印日志时,有时候需要附带日志相关的源文件信息,可能会使用如的宏:__FILE____LINE____FUNCTION__打印日志的效果可能如下:日志中会附带长长的源文件的全路径,有点难看,文件名是由**__FILE__**宏输出来的,那么,通过重新定义__FILE__即可解决,如下:-U__FILE__ -D__FILE__='"$(subst $(dir $<),,$<)"'通过修改g++的flags即可解决,CxxFALGS += -U__FI原创 2021-01-08 15:51:07 · 2171 阅读 · 4 评论 -
40 岁的 C++ 没有中年危机
【前言】:强大、灵活、复杂:C++ 的起源可以追溯到 40 年前,但它仍然是当今使用最广泛的编程语言之一。为了找出原因,TechRepublic 采访了 C++ 之父 Bjarne Stroustrup。C++ 的起源可以追溯到 1979 年,那时编程语言的创造者 Bjarne Stroustrup 第一次开始研究 C++ 这门语言,当时被称为“带类的 C”(C with Classes)。该语言的设计初衷是作为对 C 编程语言的改进,添加了一些基于面向对象编程的功能。Stroustrup 告诉 Tec原创 2021-01-01 10:26:37 · 1166 阅读 · 6 评论