lua thrift二进制string需要注意的地方

lua中string字符串中的字符采用完全8位编码,即可以存放任何二进制数据。

在lua thrift中,也是用string buffer来存放protocol的数据,如果说lua需要和c进行buffer的传递,那么需要注意:

1、buffer到c中转化为一个c字符串,const char*

2、从lua虚拟栈取buffer应该用lua_tolstring

3、将buffer传入到lua中应该用lua_pushlstring

如果说直接将buffer当普通字符串处理的话,字符串长度都是通过strlen来处理,对于buffer肯定就不对了。

一些代码如下

lua:

c:

发表评论