有人可以给我一个从sk_buff复制整个数据包的完整示例吗?我正在做一些事情:
char *pkt = skb_header_pointer(sbuf, 0, sbuf->len, mybuf);
if (mybuf != pkt) {
memcpy(mybuf, pkt, sbuf->len);
}
其中sbuf
是struct sk_buff *
,mybuf
是我自己的缓冲区。由于我不理解的原因,此函数偶尔会返回一个NULL指针,指示某些内容已失败。可能是什么原因?什么是复制整个缓冲区的最佳方法?