在python中使用ctypes将pcap_stat struct传递给pcap_stats

2024-09-30 20:19:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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中是怎么回事?在


Tags: 函数代码statspcapctypes结构stat小包装
1条回答
网友
1楼 · 发布于 2024-09-30 20:19:59

您需要声明任何指针参数的正确类型;特别是struct pcap_stat *ps变成{}。在

然后:s = pcap_stat(); pcap_stats(handle, ctypes.byref(s))。在

另请参阅http://cffi.readthedocs.org,以了解可能比ctypes更易于使用的不同接口。在

相关问题 更多 >