gpt4 book ai didi

c - 为什么 pcap_next_ex 的第三个参数是不兼容的指针类型?

转载 作者:太空宇宙 更新时间:2023-11-04 05:32:11 25 4
gpt4 key购买 nike

免责声明:这是一项家庭作业,但问题与作业无关,只是关于一般的语法怪异。

我试图在一个更大的程序的上下文中使用 libpcap,但是当我尝试获取每个数据包的数据包头和数据时,gcc 提示 pcap_next_ex 的第三个参数是不兼容的指针类型。下面是一些示例代码,看看我在说什么:

#include <stdio.h>
#include <stdlib.h>
#include <pcap.h>

int main()
{
pcap_t *pcap;
char pcapErr[PCAP_ERRBUF_SIZE];
struct pcap_pkthdr *pktHeader;
u_char *pktData;

pcap = pcap_open_offline("somefile.pcap", pcapErr);
if (pcap == NULL)
{
fprintf(stderr, "pcap_open_offline failed: %s\n", pcapErr);
exit(EXIT_FAILURE);
}

while (pcap_next_ex(pcap, &pktHeader, &pktData) == 1)
{
// do things here
}

pcap_close(pcap);

return EXIT_SUCCESS;
}

手册页表明 pcap_next_ex() 的原型(prototype)是:

int pcap_next_ex(pcap_t *p, struct pcap_pkthdr **pkt_header, const u_char **pkt_data)

我正在传递一个不兼容的指针类型到底是怎么回事?谢谢。

最佳答案

将 pktData 的声明更改为:

const u_char *pktData;

gcc 应该停止提示。

关于c - 为什么 pcap_next_ex 的第三个参数是不兼容的指针类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/430678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com