<?xml version="1.0" encoding="utf-8"?>
<!--  RSS generated by tsingfun.com RSS Builder [2026-04-21 22:28:29]  --> 
<rss version="2.0" xmlns:im="http://purl.org/rss/1.0/item-images/" xmlns:dc="http://purl.org/dc/elements/1.1/" >
<channel>
<pubDate>Tue, 21 Apr 2026 22:28:29 +0800</pubDate>
<lastBuildDate>Tue, 21 Apr 2026 22:28:29 +0800</lastBuildDate>
<docs>https://m.tsingfun.com</docs>
<link>https://m.tsingfun.com</link>
<title>C/C++</title>
<image>
<title>C/C++</title>
<url><![CDATA[]]></url>
<link>https://m.tsingfun.com</link>
</image>
<webMaster>https://m.tsingfun.com</webMaster>
<generator>https://m.tsingfun.com</generator>
<ttl>60</ttl>
<dc:creator>https://m.tsingfun.com</dc:creator>
<dc:date>Tue, 21 Apr 2026 22:28:29 +0800</dc:date>
<item>
<title><![CDATA[jemalloc 接入方法：提高内存使用效率解决内存泄漏]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/use_jemalloc.html]]></link>
<description><![CDATA[jemalloc 介绍及编译步骤本文直接略过，仅记录一下C++程序如何接入jemalloc，以及如何确认jemalloc已载入。注：jemalloc是非侵入式的，目标程序无需依赖jemalloc库，只需要在目标   ]]></description>
<pubDate>2023-05-22 14:19:14</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/use_jemalloc.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[C++ SpinLock 自旋锁的代码实现（全网最简略的方式）]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/cpp_spinlock.html]]></link>
<description><![CDATA[1、最简单的一种，来自《C++并发编程实战》第5章 C++内存模型和原子类型操作： include &lt;iostream&gt; include &lt;atomic&gt; include &lt;thread&gt; include &lt;vector&gt; include &lt;unistd h   ]]></description>
<pubDate>2023-04-05 16:36:37</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/cpp_spinlock.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[memcpy() 是非线程安全的，并发时需加锁或使用原子操作]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/memcpy_thread_unsafe.html]]></link>
<description><![CDATA[最近调查线上一个问题，就是一块 int32 的内存会极低概率出现 -18亿的巨数字，有时又是正确的。自己刻意测试又不能再现，在确认不可能将这样一个巨量数字写入的情况下，这时只   ]]></description>
<pubDate>2023-04-05 16:13:56</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/memcpy_thread_unsafe.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[【解决】undefined reference to 'apr_thread_rwlock_destory'、undefined reference to 'apr_initialize']]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/undefined_reference_apr.html]]></link>
<description><![CDATA[1、首选确认安装了apr及apr-util否则报错&lt;apr-1 apr_xxx h&gt;头文件找不到。2、-lapr-1  -laprutil-1添加库链接，否则报错：undefined reference to &amp; 39;apr_thread_rwlock_de   ]]></description>
<pubDate>2023-03-24 15:35:20</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/undefined_reference_apr.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[C++实现句柄多版本过期置old的思路]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/2648.html]]></link>
<description><![CDATA[使用MVCC可以解决。轻量级的不使用MVCC的话，思路如下：核心ObjPtrmap&lt;id, ObjPtr&gt; map_;Get的时候返回最新的ObjPtr；当ObjPtr有新版本要更新的时候，将map中对应id的ObjPtr中is   ]]></description>
<pubDate>2023-03-17 16:18:37</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/2648.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[C++ 打开文件，以清空覆盖的方式]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/cpp_fstream_trunc_out_in.html]]></link>
<description><![CDATA[C++ 打开文件，以清空覆盖的方式，代码如下：std::unique_ptr&lt;ostream&gt; stream = std::make_unique&lt;fstream&gt;(&quot;xxx&quot;, ios::trunc | ios::out | ios::in);*stream &lt;&lt; &quot;co   ]]></description>
<pubDate>2023-03-07 15:23:21</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/cpp_fstream_trunc_out_in.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[原子vector的一种实现源码(atomic-vector)]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/atomic-vector.html]]></link>
<description><![CDATA[来自Facebook的一种实现，源码如下： *   +----------------------------------------------------------------------+   | HipHop for PHP                 ]]></description>
<pubDate>2022-03-01 09:50:37</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/atomic-vector.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[C++ Lock-free Hazard Pointer（冒险指针）]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/hazard_pointer.html]]></link>
<description><![CDATA[<img src=https://www.tsingfun.com/uploadfile/2022/0224/thumb_150_150_20220224034242380.jpg border='0' /><br />1  Safe Reclamation MethodsFolly 的 Hazard Pointer 实现中有一段注释，详细描述了 C++ 里几种主流的安全内存回收方法，列表如下：优点缺点场景Locking易用读高开销     ]]></description>
<pubDate>2022-02-24 15:36:52</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/hazard_pointer.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[CPU指令集avx程序无法运行，运行崩溃]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/cpu_avx_run.html]]></link>
<description><![CDATA[<img src=https://www.tsingfun.com/uploadfile/2022/0217/thumb_150_150_20220217051630411.png border='0' /><br />原因就是CPU不支持相应的指令集导致的。Linux上使用 lscpu 命令查看CPU指令集，看是否支持。比如_mm256_cmpeq_epi64 这个函数需要avx2指令集，但是CPU不支持，就导致程序崩溃起不来。]]></description>
<pubDate>2022-02-17 17:09:36</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/cpu_avx_run.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[Intel SMID指令集编译错误: inlining failed in call to always_inline 'xxx': target specific option mismatch xxx]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/intel_smid_compile_error.html]]></link>
<description><![CDATA[<img src=https://www.tsingfun.com/uploadfile/2022/0217/thumb_150_150_20220217050102887.png border='0' /><br />最近在使用CPU指令集优化代码的时候，编译出错，报错如下： usr lib64 gcc x86_64-suse-linux 7 include avx2intrin h:252:1: error: inlining failed in call to always_i   ]]></description>
<pubDate>2022-02-17 16:55:06</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/intel_smid_compile_error.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[【解决】This is allowed only when policy CMP0079 is set to NEW.]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/This-is-allowed-only-when-policy-CMP0079-is-set-to-NEW.html]]></link>
<description><![CDATA[cmake最低版本设置为3 13以上，可解决。cmake_minimum_required(VERSION 3 13) can fix the first problem 参考：https:  gitlab kitware com cmake cmake - issues 19693]]></description>
<pubDate>2021-09-22 17:38:45</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/This-is-allowed-only-when-policy-CMP0079-is-set-to-NEW.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[【解决】Missing FindPython3.cmake]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/Missing-FindPython3-cmake.html]]></link>
<description><![CDATA[编译llvm时，报错：CMake Error at CMakeLists txt:729 (find_package):  By not providing &quot;FindPython3 cmake&quot; in CMAKE_MODULE_PATH this project has  asked   ]]></description>
<pubDate>2021-09-22 17:10:20</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/Missing-FindPython3-cmake.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[【解决】C、C++混合编译link失败问题]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/c_cpp_mixed_compile.html]]></link>
<description><![CDATA[C、C++混合编译时，C头文件不加 extern &quot;C&quot;，函数按照C++编译会改变函数名称，导致link时报undefined reference to `xxx` 的 错误。加 extern &quot;C&quot; 解决，但是直接加的话   ]]></description>
<pubDate>2021-08-25 14:50:49</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/c_cpp_mixed_compile.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[【解决】double free or corruption (!prev)]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/double-free-or-corruption-prev.html]]></link>
<description><![CDATA[*** glibc detected ***   cupd: double free or corruption (!prev): 0x093b1208 ***可能原因：1、多次释放同一内存区，需要检查代码，是否出现了对同一内存区释放两   ]]></description>
<pubDate>2021-08-06 16:14:07</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/double-free-or-corruption-prev.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[【解决】munmap_chunk(): invalid pointer]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/munmap_chunk-invalid-pointer.html]]></link>
<description><![CDATA[原因：new malloc出来的指针被覆盖掉了，然后delete free就会报这个错误。例如：char* word = (char*)malloc(10);word = &quot;abc&quot;;   应使用 strcpy(word, &quot;abc&quot;);free(word)   ]]></description>
<pubDate>2021-08-06 15:55:13</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/munmap_chunk-invalid-pointer.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[【解决】asan runtime does not come first in initial library list]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/asan-issue-with-asan-library-loading.html]]></link>
<description><![CDATA[报错信息：ASan runtime does not come first in initial library list; you should eitherlink runtime to your applicationor manually preload it with L   ]]></description>
<pubDate>2021-07-23 15:52:16</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/asan-issue-with-asan-library-loading.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[namespace “std” has no member “clamp”]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/namespace-std-has-no-member-clamp.html]]></link>
<description><![CDATA[error: &lsquo;clamp&rsquo; is not a member of &lsquo;std&rsquo;namespace std has no member clampC++17特性，加编译选项 -std=c++17]]></description>
<pubDate>2021-07-06 16:49:48</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/namespace-std-has-no-member-clamp.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[‘std::tr1’ does not name a template type]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/std-tr1-does-not-name-a-template-type.html]]></link>
<description><![CDATA[解决方法：添加头文件 if !defined(_MSC_VER) include &lt;tr1 memory&gt; endifC++ Technical Report 1 (TR1)是ISO IEC TR 19768, C++ Library Extensions（函式库扩充）的   ]]></description>
<pubDate>2021-07-06 14:12:47</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/std-tr1-does-not-name-a-template-type.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[C++ protobuf使用入门实例]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/cpp_protobuf_demo.html]]></link>
<description><![CDATA[protobuf 是结构化数据的系列化 反序列化解决方案，类似XML JSON，但他的运行效率及压缩率均较后者高一个数量级，且完全的跨平台。使用步骤如下：1、定义一个 proto数据结构文件   ]]></description>
<pubDate>2021-07-04 20:07:31</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/cpp_protobuf_demo.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
<item>
<title><![CDATA[eclipse cdt 运行程序时添加依赖库路径]]></title>
<link><![CDATA[https://www.tsingfun.com/it/cpp/eclipse-cdt-ld-library-path.html]]></link>
<description><![CDATA[<img src=https://www.tsingfun.com/uploadfile/2021/0703/thumb_150_150_20210703103534691.png border='0' /><br />我们知道Linux即使依赖库和可执行文件在同一目录下，如果不使用 LD_LIBRARY_PATH 指定库路径（即当前目录）的话，仍然会报加载不到依赖库的错误。那么Eclipse CDT也是类似，可   ]]></description>
<pubDate>2021-07-03 22:25:43</pubDate>
<guid><![CDATA[https://www.tsingfun.com/it/cpp/eclipse-cdt-ld-library-path.html]]></guid>
<author>https://m.tsingfun.com</author>
</item>
</channel>
</rss>
