如何删除前3个字节的缓冲区

时间:2014-06-16 11:58:59

标签: c++

如何在C ++中删除缓冲区的前3个字节?

在javascript中我会简单地说:

var hashed = new Buffer(packet, "hex");

// remove first 3 bytes from packet
hashed = hashed.slice(3);

示例:

01 02 03 04 05 06

输出:

04 05 06

我的C ++代码:

size_t size = node::Buffer::Length(packet->ToObject());
char *buf = node::Buffer::Data(packet->ToObject());

Node.js代码(用法):

var addon = require('./build/Release/krypto');

console.log(addon.encrypt( new Buffer("3A00F063F9757D6FE7ABD8ABCE8387C8C14F43CDE1DAA64D195BB8", "hex") ));

1 个答案:

答案 0 :(得分:1)

从缓冲区中删除内容是一项代价高昂的操作。通常,缓冲区保持不变,并使用某种指针或索引标记来标记缓冲区的当前逻辑起始位置。根据您的缓冲区是数组,std :: vector还是完全不同的东西,这可能是数组类型的const TYPE*,或简单size_t索引或某些{std::vector<TYPE>::const_iterator 1}}。