代码之家  ›  专栏  ›  技术社区  ›  Bob Somers

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

  •  0
  • Bob Somers  · 技术社区  · 17 年前

    免责声明:这是一个家庭作业,但问题不是关于作业,只是关于一般语法奇怪。

    #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()的原型为:

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

    我要传递的不兼容指针类型到底是什么?谢谢

    1 回复  |  直到 7 年前
        1
  •  7
  •   diciu    17 年前

    将pktData的声明更改为:

    const u_char *pktData;