我在python中通过ctypes使用libpcap。我写了一个小包装,这样我可以更方便地访问pcap函数。例如,pcap_geterr看起来像
# char *pcap_geterr(pcap_t *p);
geterr = _pcap.pcap_geterr
geterr.argtypes = [ctypes.c_void_p]
geterr.restype = ctypes.c_char_p
但是现在我需要使用pcap_stats,并且在将pcap_stat结构传递给函数时遇到了问题。在
代码看起来像
^{pr2}$我不确定stats的第二个参数类型是否正确,以及如何在python中将C结构传递给函数。在C语言中它可能看起来像
struct pcap_stat stat;
pcap_stats(handle, &stat);
但是在python中是怎么回事?在
您需要声明任何指针参数的正确类型;特别是}。在
struct pcap_stat *ps
变成{然后:
s = pcap_stat(); pcap_stats(handle, ctypes.byref(s))
。在另请参阅http://cffi.readthedocs.org,以了解可能比ctypes更易于使用的不同接口。在
相关问题 更多 >
编程相关推荐