C
makesifriend
聚沙成塔,积少成多
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
字符串二重指针为什么需要动态分配空间
指针的概念:创建一个指针类型的数据,在64位系统中,一个指针类型的数据用8个字节表示。指针类型的数据存储某个数据的地址。编译器,可以根据指针地址处理该地址的数据。问题:字符串指针是指向字符串的指针,初始化字符串指针时,不需要为该字符串指针分配内存;而初始化字符串二重指针时,却需要用malloc为二重指针分配内存?一重字符串指针首先考虑字符串的存储模型,如下图所示。字符串变量s其实是存储...原创 2018-06-13 10:14:23 · 2027 阅读 · 2 评论 -
strtok函数的使用
函数形式:#include <string.h>char *strtok(char *str, const char *delim);作用:根据某个定界附,将字符串分解成多个部分。方法: 第一次调用该函数时,输入为str,后面再调用该函数时,str为NULL。当分解完成后,函数返回NULL。一个分解字符串,并记录分解次数的例子:...原创 2018-06-13 11:36:42 · 2355 阅读 · 0 评论 -
C语言文件读写
在C语言中,文件的表示符号是整数型的,所以可以通过int定义文件。open可以通过open函数将具体的一个文件与文件描述符连接起来,其中read函数在fcntl.h中定义,如下:int open(const char *path, int oflag, ...);在使用open函数读写时,要首先确定文件的属性,比如后续操作文件时的属性(可写,可读,可追加,可创建)。还需要定义...原创 2019-01-02 20:31:05 · 2131 阅读 · 0 评论 -
redis下的字符串分割函数
在看redis-cli.c的时候,遇到了字符串分割函数sdssplitargs,我想不就是字符串分割函数吗,我也会写,我到要看看自己写的东西与标准有何不同。一个用C语言写的字符串分割函数需要考虑哪些问题呢?1,分割的字符串用啥存储呢?答案是二重指针,相当于一个字符串数组;2,使用啥函数解决从源字符串复制到新开辟的指针所指向的空间呢?strncpy;3,函数的逻辑问题?嗯,如果遇到‘...原创 2019-05-20 10:03:16 · 1521 阅读 · 0 评论 -
redis客户端连接到服务器的步骤
看了大约3天的redis-cli了,是进行总结的时候了。和大多数客户端连接到服务器一样,redis-cli连接到服务器也主要分为两个阶段,请求连接阶段和数据传送阶段。具体来讲redis-cli做的事情有:1、以socket方式建立连接;2,选择相应的数据库;3,对客户端发送的命令进行编码;4,发送客户端编码的数据(write);5,接收服务器回应的数据(read);6,...原创 2019-05-20 17:39:25 · 5656 阅读 · 2 评论 -
认识linenoise
在学习redis的client源码的过程中,遇到了linenoise这个函数,知道它是一个处理命令的工具,但它具体能做什么工作,怎样作这些工作还是不清楚。通过查看相关资料,对linenoise的功能及部分使用方法有了初步的认识,下面就让我介绍一下:1,linenoise是个处理指令的交互窗口在redis中,linenoise用在client中,就像是一个交互窗口,在这个窗口中,可以输入指令...原创 2019-05-18 16:32:02 · 1783 阅读 · 0 评论 -
redis的rehash工作原理
在redis中,键值以哈西表的方式进行存储,在键值对的数目比较多时,哈西值冲突的次数就会变多,这会降低检索效率。为了减少哈西表中的地址冲突次数,redis会增加键值空间,重新定义键值对的映射地址,也就是进行所谓的rehash。本文主要通过redis源码分析rehash原理。主要解决如下几个问题。1,redis中hash表的数据结构是怎样的?2,什么时候开始进行rehash?3,怎样为扩...原创 2019-06-18 09:38:44 · 7266 阅读 · 0 评论
分享