- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 全局变量同名导致踩内存
今天遇到一个诡异的内存被踩的问题,后来发现是一个全局变量与另一个静态库中的全局变量重名了,a.c:#include <stdio.h>int g_ctx = 0;int g_overlap = 0;int a_store_data(int n){ g_ctx = n; return 0;}int a_read_data(){ printf("a_read_data: g_ctx(%d) g_overlap(%d)\n", g_ctx, g_over
2020-06-15 19:43:34
872
原创 linux中I/O流的缓冲方式——结合uclibc源码分析
文章目录最近在项目中需要从父进程读取子进程的输出,从网上查了下,可以直接用popen打开一个子进程,父进程从返回的FILE*读取输出,popen的实现原理是管道,我自己写了一个简单的实现:#include <stdio.h>#include <sys/time.h>#include <unistd.h>int main(){ struct ...
2020-02-20 20:49:31
654
原创 netty HashedWheelTimer分析
文章目录定时任务处理任务添加任务取消总结wheel是一个HashedWheelBucket数组,长度为ticksPerWheel,每隔tickDuration时间后tick加1,并处理下标为(tick & ticksPerWheel -1)的bucket中的所有任务。timeouts和cancelledTimeouts是两个队列,分别用于存放待处理和取消的任务,每个任务都被封装成了一个...
2019-10-22 10:30:04
390
原创 netty 内存池分析
文章目录AbstractReferenceCountedByteBuf版本一版本二版本三AbstractReferenceCountedByteBuf看这个类的时候,有以下两个疑问对于volatile变量refCount,为什么要用unsafe通过内存偏移访问而不是直接访问为什么用2x表示引用计数,奇数表示引用计数为0而不是用0,1,2,3表示翻了git提交记录,引用如下:Use...
2019-09-19 17:36:04
495
原创 redis源码分析——LRU
文章目录数据结构数据淘汰机制淘汰策略淘汰流程几点疑惑数据结构typedef struct redisObject { unsigned type:4; unsigned encoding:4; unsigned lru:LRU_BITS; /* LRU time (relative to global lru_clock) or ...
2019-07-18 15:53:34
363
原创 redis源码分析——发布订阅
文章目录数据结构消息订阅通道订阅模式订阅消息发布Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。数据结构typedef struct client { ... dict *pubsub_channels; /* channels a client is interested in (SUBSCRIBE) */ ...
2019-07-15 22:36:52
244
原创 redis源码分析——超时处理
文章目录数据结构超时处理beforeSleep定时器访问key时数据结构typedef struct redisDb { dict *dict; /* The keyspace for this DB */ dict *expires; /* Timeout of keys with a timeout set */ ...
2019-07-14 22:42:57
345
原创 redis源码分析——eventloop
文章目录数据结构执行流程分析redis由事件循环驱动,包括定时器事件和IO事件,底层通过epoll、select、kqueue或event ports实现。定时器用于处理key的超时,IO包括网络的读写事件。数据结构/* State of an event based program */typedef struct aeEventLoop { int maxfd; /* hi...
2019-07-12 17:55:59
333
原创 redis源码分析——list
文章目录quicklist数据结构quicklist的创建quicklistquicklist是经过lzf算法压缩的ziplist列表数据结构typedef struct quicklist { quicklistNode *head; quicklistNode *tail; unsigned long count; /* total count o...
2019-07-04 23:56:05
242
原创 redis源码分析——set
redis源码分析——setset是什么数据结构intset数据结构插入元素删除元素查找元素dict数据结构插入元素删除元素查找元素未完待续set是什么set是string类型的无序集合,不能出现重复的数据。数据结构typedef struct redisObject { unsigned type:4; unsigned encoding:4; unsigned ...
2019-06-25 23:33:13
466
原创 redis源码分析——zset
这里写自定义目录标题zset是什么skiplist数据结构level的计算插入结点删除结点功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图...
2019-06-20 22:04:41
767
原创 linux3.18 内核移植记录(Exynos4412)
针对exynos4412的linux3.18内核移植记录,包括emmc驱动,lcd驱动,触摸屏驱动等
2017-03-18 16:20:00
2874
1
原创 Python实现局部静态变量
Python实现局部静态变量[TOC] python没有局部静态变量,但可以通过以下几种方式实现类似于C语言的函数内局部静态变量。1、定义函数属性在python中一切皆对象,函数也是一个对象,因此可以给函数定义属性:def func(): func.x+=1 print(func.x)>>>func.x=0>>>func()1>>>func()22、默认参数python解
2017-01-07 16:02:03
7949
原创 MINI2440移植xenomai记录
MINI2440移植xenomai记录最近折腾了一段时间,把xenomai移植到了mini2440上,在此做点记录以便日后查阅。
2015-12-13 20:42:53
3499
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人