- 博客(61)
- 收藏
- 关注
原创 聚族索引和非聚族索引的区别
聚集索引:主键值和数据存储在一起的mysql的data和index是存储在听一个文件中的myisam主键索引和非主键索引存储格式相同innodb的非主键索引 :非主键索引也是B+树存储,但是叶子节点存储的是主键值,需要通过主键值进行回表查询...
2021-06-14 16:58:40
163
原创 hashmap
typedef int (* HashKeyCmpFun)(const void *key1, const void key2);typedef int ( HashCalFun)(const void *key);typedef struct HashNode {void *key;int value;struct HashNode *next;} HashNodeT;typedef struct {HashNodeT *entry;} BucketT;typedef struct {
2020-12-16 22:59:57
104
原创 双端队列
队列空的标识:front == rear队列满的标识:front + 1 == rear双端队列数据存储 比单队列多一位typedef struct {int capity;int front;int rear;int data[];} MyCircularDeque;/** Initialize your data structure here. Set the size of the deque to be k. */MyCircularDeque* myCircularDequeC
2020-11-22 18:05:02
128
原创 队列-c语言实现
队列 : 先进后出(后进先出)#define MINQUESIZE 5typedef struct TreeNode* ElemType;typedef struct {int size;int capacity;int front;int rear;ElemType *data;} MyQueue;MyQueue *CreatQueue(int capacity){if (capacity < MINQUESIZE) {capacity = MINQUESIZE;}My
2020-11-15 18:03:08
120
原创 数据结构--栈
栈 : 先进先出实现代码如下所示:#define MYERROR -1typedef char ElemType;typedef struct {int top;int stackSize;ElemType *data;} myStack;myStack* StackInit(int stackSize){if (stackSize <= 0) {return NULL;}myStack *res = malloc(sizeof(myStack));if (res ==
2020-11-08 17:30:03
79
原创 docker
docker1、先卸载老的:yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine2、安装必备组件 yum install -y yum-utils device-mapper-persistent-data lvm23、加Repocd /rootwget
2020-07-26 17:11:07
130
原创 内联函数、静态函数以及普通函数
https://blog.csdn.net/qq_25815379/article/details/80735199
2019-09-18 16:10:38
239
原创 C语言实现字符转UNIX时间戳
strptime函数:https://zhidao.baidu.com/question/235245979.htmlchar *strptime(const char *restrict buf, const char *restrict format, struct tm *restrict tm);buf指向一个字符串格式的时间,函数将这个时间用format表示的格式解析,存放到tm中去...
2019-08-12 16:15:30
855
原创 宏定义的使用技巧
参考博客:https://blog.csdn.net/zhu2695/article/details/91555931、防止一个头文件被重复包含#ifndef BODYDEF_H#define BODYDEF_H//头文件的内容#endif2、重定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数的差异,方便移植。typedef unsigned char boolean...
2019-07-21 22:31:25
228
原创 通过函数名掉用函数
方法一:通过函数指针调用(1)外部输入函数名,依次匹配函数名与函数,若匹配则返回该函数的入口地址,并通过函数指针接收,然后调用。 void fun_fun1() { printf("fun1\n"); } void fun_fun2() { printf("fun2\n"); } typedef void (* fp...
2019-07-21 21:35:41
226
原创 linux signal(信号)
信号:信号是unix中最古老的进程通信的一种方式,他是软件层次上对中断机制的模拟,是一种异步通信方式,信号可以实现用户空间进程和内核空间进程的交互,内核进程可以利用他通知用户进程发生了哪些系统事件,我们可以任何时候给进程发送信号而无需知道进程的状态,如果进程当前并未处于执行态,则信号则会由内核保存起来,如果进程是阻塞状态,那么信号传递会被延迟,直到阻塞结束时才会传递给进程。可靠信号和不可靠信号的...
2019-07-14 23:43:43
171
原创 宏函数以及do{...}while(0)的巧妙用法
宏定义,编译预处理命令,在编译预处理时即进行简单的字符串替换。宏定义函数和用户定义的函数在使用时有如下区别:1、宏函数会在编译预处理时展开,只占用编译时间,函数调用则会占用运行时间(分配单元、保存现场、值传递、返回等),每次执行都需要载入,所以执行相对于宏较慢。2、在函数调用时,先求出实参表达式的值,然后带入形参。而使用带参的宏只是进行简单的字符替换。3、函数调用是在程序运行时处理的,分配...
2019-07-14 16:43:17
1548
原创 linux的strings命令(用于查找自己改动的代码是否编到库中去)
strings命令:打印文件中可打印的字符。这个文件可以是文本文件(test.c),可执行文件(test),动态链接库(test.o),静态链接库(test.a)在软件开发中,我们经常需要修改代码、并生成静态库、动态库或者可执行文件,有时候,工程太大,难以确定自己的代码是否正确编译到库中去了。此时我们可以使用strings命令。例如:先建立一个test.c #include <s...
2019-07-14 15:26:45
460
原创 交叉编译及工具链的概念
交叉编译:在一种平台上编译,编译出来的程序,放到别的平台上运行。即编译的环境和运行的环境是不一样的。交叉编译的原因交叉编译处的程序,所要运行的目标环境中,各种资源都相对有限,所以很难进行直接的本地编译。工具:所谓工具,主要指的时:和程序编译链接等相关的gcc,ld等工具。工具链:(本地平台)将和程序编译链接相关的gcc,binutils等工具按照先编译后链接等相关的编译程序的内在逻辑...
2019-07-07 22:17:45
954
原创 c语言malloc callloc realloc函数
void *malloc(unsigned size)动态申请size个字节的内存空间;功能:在内存的动态存储区中分配一块长度为size字节的连续区域。函数的返回值为该区域的首地址。void *calloc(unsigned n,unsigned size)向系统动态申请n个,每个站size个字节的内存空间;并且把分配的内存全部初始化为零值。函数返回值为该区域的首地址。void * re...
2019-07-07 17:56:34
321
原创 linux基础
一 、yum1、yum源的repo文件repo文件是linux的yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或多个软件仓的细节内容,例如我们将从哪里下载需要安装或升级的软件包,repo文件中的设置内容将被yum读取和应用。2、yum clean all 和 yum makecacheyum会把下载的软件包和header存储在cache中,而不自动删除。可以使用yum ...
2019-06-30 22:59:07
1031
原创 bitmap 布隆过滤器
布隆过滤器博文:https://blog.csdn.net/hoho1151191150/article/details/85014644
2019-06-28 20:19:56
79
原创 线程池 进程池 内存池 连接池
博文参考:1、https://blog.csdn.net/sayhello_world/article/details/728293292、https://blog.csdn.net/hubi0952/article/details/80450943、https://blog.csdn.net/u012152619/article/details/46287419...
2019-06-26 21:15:20
165
原创 kv数据库
key-value数据库是一种以键值对存储数据的一种数据库,类似Java的map,每个键都会对应一个唯一的值。key-value数据库代表为redis。redis是一个key-value存储系统,支持存储的value类型相对更多,包括string(字符串)、list(列表)、set(集合)和zset(有序集合)。另外redis是一种内存型的数据库,所以可以对外提供很好地读写操作,但是内存占用高,...
2019-06-26 20:32:56
4643
原创 DML DQL DDL 订阅与发布(推送)
DML:数据库操纵语言,例如select(查询)、update(更新)、insert(添加)以及delete(删除等)等。主要是用来对数据库的数据进行一些操作。DDL:数据库定义语言,即一些常用的sql语言,比如说:create(创建)、alter(修改)、drop(删除)等。DDL主要是用来定义或改变表的结构,数据类型,表之间的链接和约束等初始化工作上。DQL: 数据查询语言数据查询语言D...
2019-06-26 19:21:26
147
原创 c语言volatile和static关键字
volatile关键字:https://blog.csdn.net/tigerjibo/article/details/7427366、static关键字:https://blog.csdn.net/t595180928/article/details/80448249
2019-06-24 09:21:28
1338
原创 静态库和动态库
静态库:1>命名规则:lib+名字+.a (例如:libmytest.a)2>制作步骤:1)生成对应的二进制文件.o :gcc *.c -c2)将二进制文件.o打包成静态库:ar rcs +静态库的名字 +生成的所有的.o文件3>发布静态库:(静态库+头文件)4>使用静态库:假设主函数在main.cru,头文件目录在include,静态库目录为lib,...
2019-06-23 09:44:59
108
原创 vim使用技巧 gcc使用技巧
命令模式下的操作:1>. 光标的移动前移动光标:H下移光标:J上移光标:K后移光标:L行首: 0行尾: $文件开始位置: gg文件末尾: G行跳转: 300G2>. 删除操作删除光标后的字符: x删除光标前的字符:X删除光标后的单词: dw (光标移动到单词的开始位置, 否只能删除一部分)删除光标到行首的字符串: d0删除光标到行尾的字符串:D(d$)...
2019-06-22 23:15:45
365
原创 同步 异步
1、https://blog.csdn.net/huangqiang1363/article/details/795088522、https://blog.csdn.net/qq_36071795/article/details/838901243、https://blog.csdn.net/zyz0225/article/details/809764444、https://blog.csd...
2019-06-16 17:28:33
108
原创 shell中EOF的使用
用法一:EOF与<<结合使用,表示后续的输入作为子命令或者shell的输入,直到遇到EOF为止,再返回主调shell原因:shell的<<操作符,通知shell下一个词为一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符。并且这个分界符可以是任意定义的字符串。例子1:登入MySQL,并自行查找,具体参见下文参考博文链接例子二:cat和eof结...
2019-06-16 16:11:33
1022
原创 shell脚本编程
1、shell函数详解shell函数定义格式:function fun_name(){statements[return value]}function 为shell中定义函数的关键字fun_name为函数名statements为函数要执行的代码return value表示函数的返回值,这部分可写也可以不写函数调用调用shell函数时可以给它传递参数也可以不传递参数。如果不...
2019-06-16 14:28:43
183
原创 gdb基本调试步骤
启动程序准备调试方法1:gdb yourpram方法二:先输入gdb (进入gdb)再输入:file yourpramgdb调试参数列表list l 显示多行源代码break b 设置断点,程序运行到断点位置停下来info f 描述程序的状态(可以查看断点)run r 开始运行程序dispaly disp 跟踪查看某个变量,每次停下...
2019-06-16 10:33:26
454
原创 c语言结构体 联合体 枚举 typedef重定义
1、c语言结构体内不能定义静态变量:typedef struct{int a;char *p;static int b;//错误}mystuct;原因:c语言的struct只是类型声明,编译时不会生成内存空间,而static变量是需要内存空间的。2、结构体和联合体的巧妙用法:union type{long INT;int BOOL;double DOUBLE;char...
2019-06-16 09:49:32
1115
原创 路由最长前缀匹配规则(lpm算法)
博文参考:1、https://baike.baidu.com/item/最长前缀匹配/5488072?fr=aladdin2、https://blog.csdn.net/jeason29/article/details/45364885
2019-06-15 23:07:40
13186
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人