自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 libevent源码剖析

libevent源码剖析。

2024-03-10 14:57:13 162

原创 malloc实现原理探究

malloc

2023-03-04 16:19:44 764

原创 detach,主线程终止后子线程会结束吗

研究detach的坑和进程的退出机制

2023-02-17 21:01:29 6027 5

原创 c++智能指针的实现 my smart_pointer

想写个智能指针,以加深理解。在网上搜了好多例子,都不是很满意,有的都便不过。参考网上的代码,自己改写了一个版本。设计思路如何实现智能指针? 首先要明确,智能指针有哪些基本的功能? 1.管理引用计数,并当引用计数为0时,自动析构。 2.具备一个指针最基本的功能,需要重载以下操作符: operator*() operator->() 3.需要定义以下几个函数 construct copy construct a...

2021-12-26 20:30:50 549

原创 c++内存对象模型&虚函数表vtable布局研究

vtable c++ 内存布局 查看内存布局 虚函数表 多重继承

2021-12-11 22:35:55 1881

原创 用GDB查看c/c++内存对象模型

使用GDB查看c/c++内存

2021-12-11 16:10:55 820

原创 stack smashing datected.Aborted(core dumped)

在linux下编译程序时,遇到以下错误: stack smashing datected.Aborted(core dumped) 经排查,是由于对数组进行越界操作造成的,示例代码如下:define APP_DATA_SIZ 64typedef struct { appData[APP_DATA_SIZ ]; }receData; memcpy(receData.appData,

2017-05-12 18:17:47 712

原创 Qt中自定义c++库及使用

基于Qt,自定义c++库,并调用该库,简单的记录下方法。1.库的建立1)打开Qt—New Project—Library—c++库,默认,按提示操作即可。2)在Linux终端,make distclean—qtqmake—make,生成库文件,libxx.so。2.调用库添加库—外部库,按提示操作,加载step1中生成的库文件。

2017-02-14 16:22:34 3498

原创 线程同步—信号量(闭环控制)

本文提供一个用信号量对线程实现闭环控制的程序,该程序只是为了演示信号量的作用,并没有实用价值。  程序的逻辑很简单,类似于数字电路中的时序图。在main()中触发一下,程序就会进入闭环控制了。上个图就一目了然了。   代码如下:#include#include#includesem_t sem1,sem2,sem3;void *thread_a(void*in){

2017-02-03 16:55:16 380

原创 线程同步—互斥锁+条件变量

在《线程同步—互斥锁》一文中,我们分析了只用互斥锁同步线程的弊端——CPU的效率和时效性不可兼得。下面,我们通过使用条件变量,在保证CPU效率的前提下,提高程序的时效性。  只用互斥锁同步线程,其CPU占用率之所以高,是因为线程需要轮询,即需要不停的检查条件是否满足。我们使用条件变量,当条件不满足时,使线程阻塞。一旦条件满足,就会解除阻塞,继续往下执行。这样,线程就不需要轮询了,因此不需要占用

2017-02-03 16:11:54 305

原创 线程同步—互斥锁

个人总结,请各位审慎的,批判着看。  当两个线程访问共享数据时,可以用互斥锁来进行同步。先看一个例子:  该程序有两个线程,一个用来从键盘读取输入的数据,一个把读取的数据显示出来。其中,数组buffer为两个线程的共享数据。  编译:gcc mutex_pthread.c  -lpthread,不要忘记-lpthread。  运行该程序,在键盘上输入数据,然后把数据显示出来。读

2017-02-03 14:17:57 428

原创 文件缓冲区测试实例及总结

声明:这篇笔记是我去年写的,当时参考了网友的博客,现在想不起来是哪篇了。如有侵权请告知,我会及时修改,谢谢。  “Talk is cheap, show me the code",so,先来一个例子吧。#includeint main(void){ int i; for(i=1 ; i <= 1024 ; i++) { printf("%c",'a'); } while(

2017-02-03 10:05:26 773

原创 客户端主动获知socket连接状态的变化

项目简介:该项目把手机上的导航信息发送到汽车仪表上,并在仪表上显示,实现手机地图到仪表的投射。发送端程序用Java编写,接收端程序用C++,Qt编写。仪表和手机之间通过wifi通信。服务器:仪表,客户端:手机。工作原理:当仪表开机后,定时的对外广播本机的IP及端口号。手机导航程序获取广播并解析仪表的地址信息,然后向仪表发送TCP连接请求。当连接建立后,即可实现通信。手机程序截取图片,然

2017-01-22 10:26:41 2626 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除