IPQ_READ(3) 2001-10-16

NAME
ipq_read —— 将来自ip_queue的消息队列读取到指定的缓冲区

SYNOPSIS

#include <linux/netfilter.h>#include <libipq.h>

ssize_t ipq_read(const struct ipq_handle *h, unsigned char *buf, size_t len, int timeout);

DESCRIPTION
函数ipq_read从内核读取一个队列消息并将其拷贝到buf指向的内存,最大拷贝长度为len。

参数h是一个上下文句柄,它必须是之前调用ipq_create_handle成功返回的句柄。

调用者有责任确保buf指向的内存确实能够容纳len个字节。

参数timeout用于为这个操作设置一个超时,单位是微秒。这在库内部是通过select系统调用实现的。0值表示正常的,向后兼容的,永不超时的阻塞行为。负值将导致函数立即返回。

不应该直接访问buf返回的数据。使用ipq_message_type,ipq_get_packet和ipq_get_msgerr函数访问缓冲区里面的排队消息。

RETURN VALUE
失败时返回-1。
成功时,当没有指定timeout值时返回一个非0的正数。
成功并且指定了timeout值,如果没有数据可用或被一个信号打断,返回0。后面这种情况下会将全局变量errno设置为EINTR。

ERRORS
发生错误时,可以通过函数ipq_errstr获取一个错误消息。

DIAGNOSTICS
虽然函数ipq_read确实是成功返回,但拷贝到缓冲的却可能是一个来自内核高层组建的错误消息。使用ipq_message_type以确定其是否为错误消息,通过ipq_getmsgerr以访问消息的值。

BUGS
None known.

AUTHOR
James Morris <jmorris@intercode.com.au>

COPYRIGHT
Copyright (c) 2000-2001 Netfilter Core Team.

Distributed under the GNU General Public License.

CREDITS
Joost Remijn implemented the timeout feature, which appeared in the
1.2.4 release of iptables.

SEE ALSO
iptables(8), libipq(3), select(2).

转载于:https://www.cnblogs.com/huyc/archive/2011/11/03/2234904.html

ipq_read(3)相关推荐

  1. 从ip_queue到nfnetlink_queue(上)

    本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途. msn: yfydz_no1@hotmail.com 来源:http:/ ...

  2. Linux内核IP Queue机制的分析(一)

    将会通过包括本文在内的三篇文章,对IP Queue机制从用户态的应用到内核态的模块程序设计进行分析.三篇文章的题目分别是: Linux内核IP Queue机制的分析(一)--用户态接收数据包 Linu ...

  3. linux收发包内核进程名称,Linux内核IP Queue机制的分析(一)——用户态接收数据包...

    序 笔者将会通过包括本文在内的三篇文章,对IP Queue机制从用户态的应用到内核态的模块程序设计进行分析.三篇文章的题目分别是: Linux内核IP Queue机制的分析(一)­--用户态接收数据包 ...

  4. libipq动态防火墙的入门实验

    实验要求如下: 1.配置自己的网络,让虚拟机和主机能相互ping通,我使用的网络是,主机Vmnet8的ip为192.168.48.1,也就是windows的网络地址.因为我使用的是nat网络,vmwa ...

最新文章

  1. java父子表_数据库二维表转父子关系,java,stream,list
  2. JFrame windowbuiler的使用基础
  3. linux——shell 中的运算
  4. auto errored after 报错解决_css重点知识和bug解决方法
  5. env-cmd is not recognized as an internal or external command
  6. Riot - 比 Facebook React 更轻量的 UI 库
  7. 第七课 循环神经网络与自然语言处理
  8. redis优化查询的两种方式
  9. Eclipse的Git插件Egit: merge合并冲突具体解决方法
  10. pyspark读取csv_手把手教你实现PySpark机器学习项目——回归算法
  11. 尚学堂Java第七章编码题
  12. 天津大学matlab软件许可,天津大学《MATLAB基础和应用》课程教学大纲.PDF
  13. javascript contains方法
  14. 想进BAT一线互联网大厂,该怎么准备技术面试?一位6年老Android的面经总结(附300+面试题)
  15. 火星车初级java面向对象
  16. PyCharm Community Edition 简单汉化(软件本身功能)
  17. 深度学习与计算机视觉 看这一篇就够了
  18. 专业的面相识别的企业|人脸识别离线SDK |人证比对API
  19. 自动验证抢宝箱时的滑动验证码代码实现
  20. KODI通过NFS访问群晖NAS

热门文章

  1. 从来都是少数决定多数
  2. 电信猫不折旧,用了几年还是原价
  3. ap计算机科学ab,AP微积分AB_AP科目介绍|AP考试网
  4. html没建站点,网页前端之HTML+CSS+JS
  5. frx表格怎样调单元格大小_前端之HTML+CSS表格的写法
  6. vscode设置tab为4个空格_动图炫技23个鲜为人知的VS Code快捷键
  7. 电脑连接路由器后无法上网_路由器如何连接电脑 无线路由器与电脑连接步骤【图文】...
  8. c oracle案例,Oracle 19c CRS重启案例记录
  9. ​人工智能的底层构架,认识HBase数据模型
  10. 江苏省政府投资基金集聚区落地,基金目标规模再增1500亿