看了好几天,做个笔记理一下思路

先贴一张nids_init()的图:

  • nids_exit():释放之前被占用的资源;
  • open_live():打开网络接口
static int open_live()
{char *device;int promisc = 0;//初始化网络接口if (nids_params.device == NULL)nids_params.device = pcap_lookupdev(nids_errbuf);if (nids_params.device == NULL)return 0;device = nids_params.device;if (!strcmp(device, "all"))device = "any";elsepromisc = (nids_params.promisc != 0);//打开网络接口,返回desc,promisc表示网卡的混杂模式if ((desc = pcap_open_live(device, 16384, promisc,nids_params.pcap_timeout, nids_errbuf)) == NULL)return 0;//下面的代码不看了...
}
  • nids_syslog():nids_syslog()函数完成日志的写入
  • init_procs():这个函数比较重要,该函数需要展开讨论
static void init_procs()
{//ip_frag_procs是处理ip_fragment的回调函数队列ip_frag_procs = mknew(struct proc_node);ip_frag_procs->item = gen_ip_frag_proc;ip_frag_procs->next = 0;//ip_frag_procs是处理ip的回调函数队列ip_procs = mknew(struct proc_node);ip_procs->item = gen_ip_proc;ip_procs->next = 0;tcp_procs = 0;udp_procs = 0;
}
  • 剩余的三个暂时不讨论,之后再完善

Libnids--函数调用顺序之nids_init()相关推荐

  1. C++ 基类,子对象,派生类构造函数调用顺序

    #include <iostream> using namespace std;class A {public:A( ) {cout << "A Constructo ...

  2. 继承构造函数调用顺序_C ++中带有继承的构造函数调用的顺序

    继承构造函数调用顺序 Base class constructors are always called in the derived class constructors. Whenever you ...

  3. Java构造函数调用顺序问题

    今天对Java的构造函数调用顺序进行研究,使用的是与C++类似的方法,即不对源码进行研究,而是直接通过打印代码对构造函数的调用顺序进行研究. 代码如下,使用的是Java核心技术中的代码,对其进行了改造 ...

  4. js 函数调用顺序研究

    花了半个小时自己测验了一下,关于JS同名函数调用的总结同大家分享一下: html中如果出现函数同名时: 如果有多个外部引入的js文件,例如a.js和b.js(引入顺序假定是a.js,然后是b.js), ...

  5. C++继承中构造函数、析构函数调用顺序及虚析构函数

    首先说说构造函数,大家都知道构造函数里就可以调用成员变量,而继承中子类是把基类的成员变成自己的成员,那么也就是说子类在构造函数里就可以调用基类的成员了,这就说明创建子类的时候必须先调用基类的构造函数, ...

  6. java构造函数调用其他程序的顺序_java初始化构造函数调用顺序

    看我大师归来: 1. Base b = new Sub(); 2. Base b = 直接忽略,从 new Sub();开始 3. 类加载器加载 Base,Sub 类到jvm; 4. 为Base,Su ...

  7. C++虚继承(九) --- 构造函数调用顺序的实用之处

    虚拟继承是C++语言中一个非常重要但是又比较生僻的存在,它的定义非常简单,但是对于理解C++的继承机制却是非常有用的.笔者最近学习过程中发现对C++的虚拟继承不是很明朗,故在这里对虚继承做个小结. 首 ...

  8. C++虚继承(七) --- 虚继承对基类构造函数调用顺序的影响

    继承作为面向对象编程的一种基本特征,其使用频率非常高.而继承包含了虚拟继承和普通继承,在可见性上分为public.protected.private.可见性继承比较简单,而虚拟继承对学习c++的难度较 ...

  9. iOS APP启动函数调用顺序~详解

    //联系人:石虎  QQ: 1224614774昵称:嗡嘛呢叭咪哄 一.OC调用 C++ 会为静态创建的对象生成初始化器,与静态语言不同,OC基于Runtime机制可以用类的名字来实例化一个类的对象. ...

  10. 构造和析构函数调用顺序

    一. 理论 1. 构造函数和析构函数 ①构造函数 构造函数不能有返回值 缺省构造函数时,系统将自动调用该缺省构造函数初始化对象,缺省构造函数会将所有数据成员都初始化为零或空  创建一个对象时,系统自动 ...

最新文章

  1. golang 命令汇总
  2. 反编译exe软件_【娱乐向】exe逆向工程(破译《游戏开发课》老师的成绩程序)...
  3. Linux下的FTP命令害死人
  4. ElasticSearch Java Api(二) -检索索引库
  5. [原]变参函数原理详解
  6. vscode php断点,VSCode中设置断点调试PHP(示例代码)
  7. 机器视觉与Tesseract介绍
  8. html css波浪线,css实现波浪线及立方体
  9. 机器人带陀螺仪走钢丝_一言不合就走钢丝,机器人化身“七变美男子”,萌翻你!...
  10. 苹果谷歌双双被曝,你的手机正在窃听你的生活
  11. OpenCV-利用其它widthStep方法把interest——img的所有像素值增加200
  12. 区分iphone和ipad 函数sysctlbyname 来获取设备名称
  13. 计算机制作ppt考试题,计算机二级PPT真题:制作计算机发展简史PPT
  14. 数据结构习题及解析二
  15. 当笑神姜涛遇上尼古拉斯赵四,低俗加上恶俗的结果是否就是封杀?
  16. 数据还原(recover)
  17. 相机拍摄时最重要的三个参数——光圈、快门、ISO
  18. 企业级大数据项目【1】需求分析及概要设计篇
  19. vue为什么需要nodejs 的环境
  20. 健翔语录——意大利对澳大利亚

热门文章

  1. 360加固apk并自动签名
  2. 多益网络 专业面试 2020 12 22
  3. 强化学习笔记(一)马尔可夫决策过程
  4. 阿里巴巴2星编程题-->选择物品
  5. java 过滤list数据
  6. Transcad——邻接矩阵
  7. 2020最新面试题(含答案)
  8. 修改RPG Maker的加密包和解密包函数
  9. 《人月神话》核心笔记
  10. Win7系统如何修改开机音乐