Linux 共享库的查找顺序 JohanChane 发布于 2024-06-11 收录于 系统编程共享库 通知动态链接器共享库的位置的方式:LD_LIBRARY_PATH标准库目录 (ldconfig 会依次搜索下面的目录生成 /etc/ld.so.cache)/etc/ld.so.conf: 在一些发行版中应该会包含 /usr/local/lib 目录, 否则需要手动添加。/lib/usr/librun pathDT_RPATHDT_RUNPATH在运行时找出共享库:
Cpp 初始化风格 JohanChane 发布于 2024-03-08 收录于 C/Cpp语言cpp 的初始化风格 兼容 C 的初始化风格: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 int i = 10; int a[] = {1, 2, 3}; struct Foo { char c; int i; }; union Bar { char c; int i; }; Foo foo = {.c = 'A', .i = 42}; Bar bar = {.c = 'A'};但是 Cpp 引入了类, 这样会导致一个问题:
内存模型和原子操作的总结 JohanChane 发布于 2024-03-07 收录于 系统编程内存模型和原子操作的设计目的 通过底层的设计可以让操作系统或 cpu 给用户提供一种操控颗粒度更小的各个线程之间的内存访问同步的功能。原子操作和互斥量的应用场景 如果仅需要对少量的简单数据进行原子操作,原子锁可能比互斥量更高效。但在涉及到复杂数据结构或需要独占资源访问的情况下,互斥量提供了更强的同步能力,但通常会涉及线程的切换和上下文切换,因此可能会引入一定的性能开销。
Cpp 单例模式的线程安全的探讨 JohanChane 发布于 2024-03-03 收录于 设计模式预备知识 静态变量的构造和析构顺序 See Destruction order of static objects in C++