对于我的Linux网络应用程序,我指的是lincap.c以了解如何使用PACKET_MMAP方法通过环形缓冲区接收以太网数据包。
lincap.c使用asm / system.h中定义的内存屏障宏mb()
。但是,该标头文件中的代码被#ifdef __KERNEL__
包含在内。我猜这意味着它是一个内核头文件。如何在用户空间应用程序中使用mb()
(我相信lincap.c是?)
BR
大卫
答案 0 :(得分:0)
也许您可以使用__sync_synchronize
内置的gcc提供。我不确定它是否生成完全相同的代码,但它应该足够相似。因此,简单地将mb
定义为该别名应该有效。