03 2024 档案
vector resize和reserve的区别
摘要:在 C++ 的标准库中,resize() 和 reserve() 是用于操作 std::vector 容器的两个不同函数,它们的作用和效果有所区别。 resize() 函数 resize() 函数用于改变 std::vector 容器的大小,即调整容器中元素的数量。 如果当前 vector 的大小小 阅读全文
posted @ 2024-03-22 14:06 未连接到互联网 阅读(402) 评论(0) 推荐(1) 编辑
Linux下生成核心转储core
摘要:为了方便进行分析调试,希望当程序发生崩溃或者收到 SIGSEGV、SIGABRT 等信号时,系统会生成相应的核心转储文件。 核心转储大小限制 首先,要检查核心转储的大小限制。可以使用 ulimit 命令来查看当前用户的核心转储大小限制: ulimit -c 如果输出为 0,则表示不生成核心转储文件。 阅读全文
posted @ 2024-03-20 19:51 未连接到互联网 阅读(262) 评论(0) 推荐(0) 编辑
Linux下的I/O多路复用
摘要:在 I/O 多路复用中,epoll、poll 和 select 是常用的三种机制,它们都可以用于实现事件驱动的网络编程。 select select 是 Unix 系统最早引入的 I/O 多路复用函数,它允许一个进程监视多个文件描述符,当其中任何一个文件描述符准备好进行 I/O 操作时,select 阅读全文
posted @ 2024-03-20 19:51 未连接到互联网 阅读(16) 评论(0) 推荐(0) 编辑
#pragma指令
摘要:pragma 是一个在 C 和 C++ 中使用的编译器指令,用于向编译器发出特定的命令或控制编译的行为。 控制编译警告 通过 #pragma warning 指令,可以在特定位置或范围内控制编译器的警告行为,如禁止某个警告、将警告作为错误处理等。例如禁止特定的编译警告: #pragma warnin 阅读全文
posted @ 2024-03-20 19:51 未连接到互联网 阅读(49) 评论(0) 推荐(0) 编辑
使用cgroups进行资源限制和管理
摘要:cgroups 是内核提供的一种机制,可以用来限制一组进程的资源使用。通过创建 cgroups 并设置相应的限制参数,可以确保多个程序共同运行时每个程序占用的资源受到限制。 挂载 cgroup 文件系统 查看 cgroup 是否已经挂载: mount | grep cgroup 如果没有挂载,则编辑 阅读全文
posted @ 2024-03-20 19:50 未连接到互联网 阅读(93) 评论(0) 推荐(0) 编辑
内存泄漏调试工具
摘要:asan、valgrind、coverity和gpertools都是用于帮助开发人员发现和调试代码中的各种问题的工具,但它们在特定方面有着不同的重点和功能。 ASan (AddressSanitizer): ASan 常用于 C/C++ 代码的静态和动态内存访问错误检测,通过在编译时注入额外的代码来 阅读全文
posted @ 2024-03-17 22:51 未连接到互联网 阅读(115) 评论(0) 推荐(0) 编辑
如何判断操作系统大小端
摘要:用一个函数判断当前系统是大端序(big-endian)还是小端序(little-endian): #include <stdio.h> int check_endian() { unsigned int num = 1; char *ptr = (char *)&num; return (int)* 阅读全文
posted @ 2024-03-17 21:51 未连接到互联网 阅读(18) 评论(0) 推荐(0) 编辑
C++ 类的内存布局
摘要:基类类内成员的内存分布 常见类内成员大致分为:类内变量、类内函数、静态变量、虚函数等,内存分布遵循: 所有成员会按照声明的顺序布局 类内成员会进行大对齐 类内函数不占用类的内存,存储在代码区 静态变量不占用类的内存,存储在全局/静态区 所有虚函数共用一个虚函数表指针,虚函数表指针不按声明顺序布局,如 阅读全文
posted @ 2024-03-01 21:14 未连接到互联网 阅读(31) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示