当前位置:  技术问答>linux和unix

关于struct pcap成员的问题~

    来源: 互联网  发布时间:2016-02-12

    本文导语:  pcap.h里定义了,typedef struct pcap pcap_t;          那pcap_t有哪些成员?哪里写了成员表列?     我想问的是struct pcap 最先在哪定义的?它不是个独立的结构吗?没看到哪里定义过     超弱的问题~ ...

pcap.h里定义了,typedef struct pcap pcap_t;
    
    那pcap_t有哪些成员?哪里写了成员表列?
    我想问的是struct pcap 最先在哪定义的?它不是个独立的结构吗?没看到哪里定义过

    超弱的问题~

|
pcap结构在libpcap源码的pcap-int.h定义,之所以没有定义仍能编译通过是因为并没有真正使用pcap类型,而是使用了其指针类型(你可以看到所有用到pcap_t的地方都是指针,而如果你使用了非指针的pcat_t定义则会发现编译不过),编译器无需知道pcap的确切定义。用这种方式可以隐藏结构的内部定义。不过你可以自己将结构定义提出来改一个名字,我想应该可以访问其内部数据结构。

详细定义如下:

struct pcap {
#ifdef WIN32
        ADAPTER *adapter;
        LPPACKET Packet;
        int timeout;
        int nonblock;
#else
        int fd;
        int selectable_fd;
        int send_fd;
#endif /* WIN32 */
        int snapshot;
        int linktype;
        int tzoff;              /* timezone offset */
        int offset;             /* offset for proper alignment */

        int break_loop;         /* flag set to force break from packet-reading loop */

#ifdef PCAP_FDDIPAD
        int fddipad;
#endif

#ifdef MSDOS
        int inter_packet_wait;   /* offline: wait between packets */
        void (*wait_proc)(void); /*          call proc while waiting */
#endif

        struct pcap_sf sf;
        struct pcap_md md;

        /*
         * Read buffer.
         */
        int bufsize;
        u_char *buffer;
        u_char *bp;
        int cc;

        /*
         * Place holder for pcap_next().
         */
        u_char *pkt;

        /* We're accepting only packets in this direction/these directions. */
        pcap_direction_t direction;

        /*
         * Methods.
         */
        int     (*read_op)(pcap_t *, int cnt, pcap_handler, u_char *);
        int     (*inject_op)(pcap_t *, const void *, size_t);
        int     (*setfilter_op)(pcap_t *, struct bpf_program *);
        int     (*setdirection_op)(pcap_t *, pcap_direction_t);
        int     (*set_datalink_op)(pcap_t *, int);
        int     (*getnonblock_op)(pcap_t *, char *);
        int     (*setnonblock_op)(pcap_t *, int, char *);
        int     (*stats_op)(pcap_t *, struct pcap_stat *);
        void    (*close_op)(pcap_t *);

        /*
         * Placeholder for filter code if bpf not in kernel.
         */
        struct bpf_program fcode;

        char errbuf[PCAP_ERRBUF_SIZE + 1];
        int dlt_count;
        u_int *dlt_list;

        struct pcap_pkthdr pcap_header; /* This is needed for the pcap_next_ex() to work */
};

    
 
 

您可能感兴趣的文章:

  • java命名空间java.sql类types的类成员方法: struct定义及介绍
  • 急,struct spw* getspnam()以及求成员变奇怪问题
  • java命名空间java.sql接口struct的类成员方法: getsqltypename定义及介绍
  • struct dirent 各个成员的意思是什么?我想知道如何判断是文件还是目录。高分求救!
  • java命名空间java.sql接口struct的类成员方法: getattributes定义及介绍
  • net-snmp中struct variable成员magic大小限制的问题
  • STRUCT的问题 iis7站长之家
  • 编译模块时出现'struct skbuff’ 没有名为'nh'的成员的错误
  • struct dirent的问题
  • 关于struct timespec的一个问题
  • struct 的member对齐问题
  • 关于字符驱动struct cdev的问题
  • Struct new 问题
  • STRUCT的问题
  • 各位高手,junit,ant,structs问题
  • 关于select函数中struct timeval问题
  • vm_area_struct初始化赋值问题?
  • gcc3.4中struct中字节对齐问题??找了很久没有确定的方法。
  • C的高手请,struct在内存中的存储格式问题
  • struct 结构内存对齐问题.
  • 一道习题的,关于struct dirent中d_name的问题
  • 2.6.30内核下init_tss和tss_struct的问题
  • 关于linux 内核源码中static struct pci_driver vortex_driver的定义的问题
  • struct sockaddr_in 的问题,我歇菜了
  • insert_vm_struct 函数问题请教
  • statvfs(const char *path, struct statvfs *buf)的问题
  • C# Struct的内存布局问题解答
  • 关于记录锁的struct flock结构中返回的pid问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux 下结构struct ethhdr,struct iphdr在那个头文件下;谢谢!!
  • typedef_struct与struct之间的区别
  • struct sock *sk和 struct sk_buff *skb之间的关系
  • 知道TCP/UDP的包头,如何判断其应用层协议类型,struct tcphdr和 struct udphdr结构中那个变量能判断应用层协议类型。
  • struct task_struct * get_current(void)函数的解释--help!!
  • 任意struct問題
  • Linux内核中work_struct的定义
  • struct 也有构造器吗?
  • 没有名字的struct
  • struct in_addr 和 unsigned long的转换
  • 求解struct的大小
  • Python struct.unpack
  • 请教struct sembuf的结构是怎样,急!急!急!!!!!!!!
  • 请问:从哪个header文件中看struct tty_driver的定义
  • 用g++开发,怎么设置结构(struct)1字节对齐?
  • struct timeval结构体的作用是什么呢?谢谢
  • 如何由pid获得task_struct?
  • 在Qt中,不知道如何定义结构变量-struct?
  • ubuntu11.04 task_struct结构
  • 谁能否介绍在jbuilder7下怎么使用structs开发web程序么?谢谢!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3