redis_3.0.7_sds.c_sdscatlen()

源程序

sds sdscatlen(sds s, const void *t, size_t len)
{
	struct sdshdr *sh;
	size_t curlen = sdslen(s);

	s = sdsMakeRoomFor(s, len);//字符串添加len个长度
	if (s == NULL) return NULL;
	sh = (void*)(s - (sizeof(struct sdshdr)));
	memcpy(s + curlen, t, len);/*
								将指针t指向的字符串指向
								s+curlen的位置,长度为len
							   */
	sh->len = curlen + len;
	sh->free = sh->free - len;
	s[curlen + len] = '\0';
	return s;
}

说明

Append the specified binary-safe string pointed by 't' of 'len' bytes to the end of the specified sds string 's'. 源程序中的注释说明这里增加的字符串是二进制安全的。但是我并没有看出来,以后再说,可能慢慢就懂了。

该函数的功能就是在原sds字符串的基础上添加len长度的字符串。新添加的字符串的头指针是t,添加到s的位置。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏计算机视觉

Python 函数使用记录,join函数和os.path.join用法

1.join()函数 语法:‘sep’.join(seq) 参数说明: sep:分隔符。可以为空 seq:要连接的元素序列、字符串、元组、字典等 上面的语法即:...

45512
来自专栏xingoo, 一个梦想做发明家的程序员

虚函数

虚函数 代码如下定义: // test1107.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <i...

2265
来自专栏十月梦想

函数的return(返回值)

return之后,函数就停止,return之后的语句将不执行,但是php也不会报错。

1183
来自专栏猿人谷

C++ STL疑惑知识点

 1.remove的问题 ? ? 参考:http://zhidao.baidu.com/question/458494170.html 2.用find搜索数组中...

2429
来自专栏Golang语言社区

golang的{}初始化

之前说到Golang中某些类型可以赋值nil, 某些类型不能赋值nil. 不能赋值nil都是initialized value不为nil的类型, 例如: boo...

3437
来自专栏计算机视觉

Python 函数使用记录,join函数和os.path.join用法

1.join()函数 语法:‘sep’.join(seq) 参数说明: sep:分隔符。可以为空 seq:要连接的元素序列、字符串、元组、字典等 上面的语法即:...

2917
来自专栏禁心尽力

Redis之数据类型大全

一:String类型 1、set方法:设置key对应的值为string类型的value,如果该key已经存在,则覆盖key对应的value值。所以在redis中...

9097
来自专栏python百例

92-re模块基础用法

1452
来自专栏Golang语言社区

golang的{}初始化

之前说到Golang中某些类型可以赋值nil, 某些类型不能赋值nil. 不能赋值nil都是initialized value不为nil的类型, 例如: boo...

3679
来自专栏海天一树

小朋友学Python(28):join方法和eval方法

一、join方法 语法: str.join(sequence) 功能: join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串 参数: seq...

28810

扫码关注云+社区

领取腾讯云代金券