09 2025 档案

摘要:套接字选项: SO_RCVTIMEO:用来设置socket接收数据的超时时间; SO_SNDTIMEO: 用来设置socket发送数据的超时时间; 一般地,调用accept/connect/send/recv, 进程会阻塞,但是如果对端异常,进行可能无法正常退出等待。如何让这些调用自动定时退出? 可 阅读全文
posted @ 2025-09-29 10:13 PKICA 阅读(9) 评论(0) 推荐(0)
摘要:socketpair()函数的声明: #include <sys/types.h> #include <sys/socket.h> int socketpair(int d, int type, int protocol, int sv[2]); socketpair()函数用于创建一对无名的、相互 阅读全文
posted @ 2025-09-29 10:09 PKICA 阅读(2) 评论(0) 推荐(0)
摘要:电子中英文对照 中文 英文 举例说明 符号还原 demangling 如c++filt 时间戳计数器 TSC(Time-Stamp Counter) 多协议标签交换 MPLS(Multiprotocol Label Switching) EoMPLS(Ethernet over MPLS) 高级状态 阅读全文
posted @ 2025-09-28 10:50 PKICA 阅读(9) 评论(0) 推荐(0)
摘要:unique_lock的特点: unique_lock提供了更多的控制锁的行为,比如锁超时、不锁定、条件变量等。 它是可移动的,可以拷贝、赋值、移动。 unique_lock比lock_guard更重,因为它有更多的功能,更多的开销。 支持手动解锁,而lock_guard不支持。 lock_guar 阅读全文
posted @ 2025-09-26 14:34 PKICA 阅读(13) 评论(0) 推荐(0)
摘要:GNU extensions to the C language family __extension__关键字: gcc对标准C语言进行了扩展,但用到这些扩展功能时,编译器会提出警告,使用__extension__关键字会告诉gcc不要提出警告。 阅读全文
posted @ 2025-09-26 10:55 PKICA 阅读(9) 评论(0) 推荐(0)
摘要:asm volatile("dmb osh" : : : "memory")是什么? arm架构有三种内存屏障,分别是: Data Memory Barrier, Data Synchronization Barrier, and Instruction Synchronization Barrie 阅读全文
posted @ 2025-09-25 16:53 PKICA 阅读(7) 评论(0) 推荐(0)
摘要:C11 中的 atomic_thread_fence 函数是一种同步原语,用于在线程间强制执行内存排序约束。它为非原子操作和松弛原子操作建立内存同步顺序,而不执行实际的原子操作。这在多线程环境中尤其有用,可确保内存变化在不同线程间的适当可见性。 函数原型 void atomic_thread_fen 阅读全文
posted @ 2025-09-25 16:16 PKICA 阅读(25) 评论(0) 推荐(0)
摘要:Loki是由 Alexandresku 编写的一个与《Modern C++ Design》(C++设计新思维)一书配套发行的C++代码库。其中有两个文件 SmallObj.h 、SmallObj.cpp 进行内存管理,可以单独进行使用 三个class,第一层是chunk,第二层是vector<chu 阅读全文
posted @ 2025-09-17 16:33 PKICA 阅读(7) 评论(0) 推荐(0)
摘要:语法: enum class 枚举类名 [: 底层类型] { 枚举值1, 枚举值2, ... }; 一般形式(当然我们一般默认成员都显转int,因此底层类型一般不写) C++的枚举类: 在C++中,enum class是一种类型安全的枚举类型,它比传统的enum类型提供了更好的作用域控制和类型安全性 阅读全文
posted @ 2025-09-17 14:58 PKICA 阅读(12) 评论(0) 推荐(0)
摘要:该函数是一个模板函数,移除T类型的指针类型,如果T类型不是指针,那么去除的类型与T类型相同。 语法: #include <type_traits> template <class T> using remove_pointer_t = typename std::remove_pointer<T>: 阅读全文
posted @ 2025-09-17 10:35 PKICA 阅读(8) 评论(0) 推荐(0)
摘要:顺序一致性(Sequential Consistency)是计算机系统中保证多线程程序正确执行的一种内存一致性模型。 它要求所有操作的执行顺序与程序员的源码顺序一致,即每个线程的操作在其本地源码顺序中保持不变, 同时不同线程的操作全局排序也符合源码顺序。 ‌核心要求顺序一致性模型确保: ‌全局顺序稳 阅读全文
posted @ 2025-09-15 10:43 PKICA 阅读(13) 评论(0) 推荐(0)
摘要:始于c++11,c++23弃用 aligned_storage 是 C++ 标准库中用于管理对齐内存的模板类,定义在 <type_traits> 头文件中。它通过模板参数指定内存大小和对齐方式,提供未初始化的内存区域,适用于需要精确控制内存布局的场景。核心功能 ‌内存对齐管理‌:通过模板参数设置内存 阅读全文
posted @ 2025-09-15 10:14 PKICA 阅读(21) 评论(0) 推荐(0)
摘要:is_trivially_default_constructible 是 C++ 标准库中的类型特性工具,用于检查类型是否具有平凡的默认构造函数。以下是关键信息:定义与用途该工具属于 <type_traits> 头文件,用于编译时查询类型是否满足以下条件: 类型具有平凡的默认构造函数(无需特殊操作即 阅读全文
posted @ 2025-09-12 17:28 PKICA 阅读(8) 评论(0) 推荐(0)
摘要:在C++11中,平凡类型(Trivial Type)、平凡可复制类型(TrivialCopyable)、标准布局类型(Standard-layout Type) 是描述类在内存中布局特性的术语,它们与类的构造、拷贝、赋值和销毁行为有关,也影响着类的内存布局和对齐方式。 下面用通俗的语言解释这些概念: 阅读全文
posted @ 2025-09-12 17:22 PKICA 阅读(23) 评论(0) 推荐(0)
摘要:替换失败不是一个错误SFINAE(Substitution Failure Is Not An Error)是C++模板编程中的一个重要概念。 它指的是在模板实例化过程中,如果某个模板参数替换导致编译错误,编译器不会立即报错,而是会尝试其 他可能的模板实例化。 模板的主要任务就是推导/替换, 将调用 阅读全文
posted @ 2025-09-12 11:16 PKICA 阅读(20) 评论(0) 推荐(0)
摘要:该功能函数包含在头文件<utility> 功能:用新值替换一个对象的旧值,并返回旧值。 语法原型:template<class T, class U = T> T exchange(T& obj, U&& new_value); 阅读全文
posted @ 2025-09-11 15:43 PKICA 阅读(6) 评论(0) 推荐(0)