小编Joe*_*Joe的帖子

将read()直接用于C++ std:vector

我在一些C++中为嵌入式系统包装用户空间linux套接字功能(是的,这可能会再次重新发明轮子).

我想使用向量提供读写实现.

写入非常简单,我可以通过&myvec[0]并避免不必要的复制.我想做同样的事情并直接读入一个向量,而不是读入一个char缓冲区,然后将所有这些复制到一个新创建的向量中.

现在,我知道我想读多少数据,我可以适当地分配(vec.reserve()).我也可以读到&myvec[0],虽然这可能是一个非常糟糕的想法.显然这样做不允许myvec.size返回任何合理的东西.有没有办法做到这一点:

  1. 从安全/ C++的角度来看,并不完全令人讨厌
  2. 不涉及数据块的两个副本 - 一次从内核到用户空间,一次从C char *样式缓冲区到C++向量.

c++ sockets buffer vector

17
推荐指数
1
解决办法
5003
查看次数

标签 统计

buffer ×1

c++ ×1

sockets ×1

vector ×1