- 博客(13)
- 收藏
- 关注
原创 c++智能指针的实现 my smart_pointer
想写个智能指针,以加深理解。在网上搜了好多例子,都不是很满意,有的都便不过。参考网上的代码,自己改写了一个版本。设计思路如何实现智能指针? 首先要明确,智能指针有哪些基本的功能? 1.管理引用计数,并当引用计数为0时,自动析构。 2.具备一个指针最基本的功能,需要重载以下操作符: operator*() operator->() 3.需要定义以下几个函数 construct copy construct a...
2021-12-26 20:30:50
549
原创 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关注的人