自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 【Go语言】...的用法

Go语言语法糖

2022-07-08 17:31:23 727 1

原创 suricata 指南

suricata入门简介安装下载源码编译依赖包编译方法简介suricata是一个开源的高性能的网络IDS、IPS和网络安全监控引擎,开放的信息安全基金会所有。该引擎是多线程的,内置 IPv6 的支持,可加载预设规则,支持 Barnyard 和 Barnyard2 工具。安装suricata可以通过二进制形式安装,也可以通过源码方式编译安装。这里我们主要讲如何通过源码方式编译安装。下载源码最新的源码为suritata-6.0.1,点击链接下载()。 源码也可以通过以下链接下载:git://pha

2020-12-17 00:24:45 831

原创 cJSON使用举例

1. cJSON 接口cJSON_AddNullToObject(cJSON * const object, const char * const name);cJSON_AddTrueToObject(cJSON * const object, const char * const name);cJSON_AddFalseToObject(cJSON * const object, const char * const name);cJSON_AddBoolToObject(cJSON * c

2020-12-09 13:42:24 1806

原创 大数据的web端口

组件 版本 web端口 hadoop 3.2.1 9870 spark 3.0.0 8080

2020-09-05 23:24:48 148

原创 map操作和flatMap操作

map操作针对集合做变化操作,将某个函数应用到集合的每个元素,产生新的集合结果例如,给定一个字符串列表,通过map操作对列表的每一个字符串进行变化:scala> val word = List("Hello", "Good", "morning")word: List[String] = List(Hello, Good, morning)scala> word.map(s=>s.toUpperCase)res4: List[String] = List(HELLO,

2020-07-18 00:06:22 554

原创 RESTFul 风格

1. 关于RESTREST:Representational State Transfer 表述性转态转移,是一种架构风格2. RESTFul一般原则URL代表一类资源,用于资源定位 HTTP动词(GET/POST/PUT/DELETE)来对资源进行操作 HTTP状态码,表示动作执行结果 将API版本号放入URL。例如:http://www.xxx.com/v1/document...

2019-10-09 15:46:03 287

转载 OSI各层的协议

应用层 DHCP · DNS · FTP · Gopher · HTTP · IMAP4 · IRC · NNTP · XMPP · POP3 · SIP · SMTP · SNMP · SSH · TELNET · RPC · RTCP · RTP ·RTSP · SDP · SOAP · GTP · STUN · NTP · SSDP 表示层 H...

2019-06-18 20:18:17 7751

转载 威胁情报专栏:谈谈我所理解的威胁情报——认识情报

前言:其实威胁情报这个概念早些年就已经产生了,但近年来,随着安全领域的重视和快速发展,“威胁情报”一词迅速出现在这个领域,如今,许多安全企业都在提供威胁情报服务,众多企业的安全应急响应中心也开始接收威胁情报,并且越来越重视。这四个字,对各位读者也许并不陌生。但究竟什么才是威胁情报,它是什么,它包含哪些方面,能做什么,能带来什么利弊,可能很多人都不清楚。本系列文章主要从威胁情报的基础与行业标...

2019-06-18 20:00:47 10370

原创 CRC校验码

1. CRC校验码手动计算方法 若信息码字为10110011,生成多项式G(X)=X^4+X^3+1,则计算出的CRC校验码为()。 解析: (1)生成多项式G(X) 对应的二进制数为 11011(有X的几次方,对应位上就是1) (2)校验码的位数就是生成多项式的最高冥次,即该生成多项式产生的校验码为4位...

2019-04-08 11:23:55 19247 3

转载 SVN冲突解决

解决版本冲突-使用SVN主干与分支功能1  前言大多数产品开发存在这样一个生命周期:编码、测试、发布,然后不断重复。通常是这样的开发步骤:1)    开发人员开发完毕某一版本(如版本A)功能后,提交测试;2)    测试人员对待发布版本A进行测试,同时开发人员继续开发新功能(如版本B);3)    测试人员提交bug,研发人员修复bug,同时继续开发新功能;

2016-11-04 17:28:41 772

原创 automake使用方法

1. 创建文件main.c2. 执行 autoscan,将自动创建两个文件autoscan.log  configure.scan,此时状态如下:[root@root auto]$ autoscan   [root@root auto]$ lsautoscan.log  configure.scan  main.c3.修改configure.scan为configure.in

2015-12-31 16:54:38 515

转载 DPDK mbuf 与 sk_buff转换

mbuf-> sk_buf/* * RX: normal working mode */static voidkni_net_rx_normal(struct kni_dev *kni){ unsigned ret; uint32_t len; unsigned i, num, num_rq, num_fq; struct rte_kni_mbuf *kv

2015-11-10 21:29:19 3278 2

转载 module_init调用过程

内核中很多模块都是通过module_init加载的在头文件 init.h()中对module_init有如下定义#define module_init(x) __initcall(x)#define __initcall(fn) device_initcall(fn)#define device_initcall(fn) __define_initcall("6",fn,

2015-11-08 12:25:39 683

转载 netfilter-iptable

什么是Netfilter/iptableNetfilter/iptables是Linux内核内置的报文过滤框架,程序可以通过该框架完成报文过滤、地址转换(NAT)以及连接跟踪等功能。Netfilter/iptables由两部分组成,一部分是Netfilter的"钩子(hook)“,这些"钩子"由Linux内核协议栈提供,内核模块可以通过注册"钩子"来完成各种各样的功能。 另一部

2015-10-23 17:28:10 578

原创 openwrt编译环境搭建

平台: Centos 6.51.依赖包安装yum install autoconf binutils bison bzip2 flex gawk gcc gcc-c++ gettext make ncurses-devel patch unzip wget zlib-devel2.下载源码git clone git://git.openwrt.org/15.05/openwrt.git

2015-10-23 17:17:24 421

转载 IPV6地址格式

一、单播地址(Unicast IPv6Addresses)1.可聚合的全球单播(Aggregatable Global Unicast)    即global地址,全球范围内可达2. 链路本地地址(Link-local)     用于同一个链路上相邻节点之间通信。     IPV6的路由器不会转发链路本地地址的数据包。    link-local地址的前缀固定为 F

2015-10-14 18:20:10 3636

原创 内核list.h在用户态使用举例

1. list的定义struct list_head { struct list_head *next, *prev;};#define LIST_HEAD_INIT(name) { &(name), &(name) }#define LIST_HEAD(name) \ struct list_head name = LIST_HEAD_INIT(nam

2015-10-12 23:10:22 2705

原创 rand()函数使用

一般情况下,我们在生成随机数的时候,都会用srand来获取种子,再使用rand()函数生成随机数。#include #include void main(){    int i = 0;23 for(i = 0; i 24 {25 srand(time(NULL));26 printf("i = %d, r = %d\n", i,rand()%10);27

2014-04-04 13:26:57 831

原创 ps 之 STAT的含义

PROCESS STATE CODES       Here are the different values that the s, stat and state output specifiers (header "STAT" or "S") will display to describe the state       of a process.       D    Unin

2013-09-05 09:34:36 605

转载 程序减肥,strip,eu-strip 及其符号表

原文地址:程序减肥,strip,eu-strip 及其符号表 作者:Bean_lee    我们公司产品里面的可执行程序和动态共享库(DSO)里面的符号表都被移除了,所以每次遇到core dump的时候,都需要将符号表导入到/usr/lib/debug目录下。一直没弄明白为啥是这个目录,能不能是其他目录,今天没啥事儿,研究了下这个主题。    我们要给我们生成的可执行文

2013-08-27 17:22:16 2122

转载 UNIX Domain Socket IPC (sockaddr_un )

socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个

2013-08-26 10:55:19 467

转载 fedora 下root vim 不能语法高亮解决方法

因为 Fedora中vim是被装在/usr/bin/vim这里。/usr/bin这个应该不在root的环境变量里面。解决办法是:rm /bin/vi;ln -s /usr/bin/vim /bin/vi;

2013-07-03 22:47:05 518

转载 inittab脚本启动解析

Linux 开机脚本启动顺序: 第一步:启动内核第二步:执行init (配置文件/etc/inittab)第三步:启动相应的脚本,执行inittab脚本,并且执行里面的脚本/etc/init.d rc.sysinit rc.d rc.local。。。第四步:启动login登录界面 login第五步:在用户登录的时候执行sh脚本的顺序:每次登录的时候都会完全执

2013-05-30 23:37:51 3224

转载 网络地址转换

IP 地址是由小数点分开的十进制数表示的,我们称之为点分十进制表示法。Internet 地址分类一个 Internet 地址是由 网络地址 和 主机地址 构成的。IP 地址占 32 位,但是 网络地址 和 主机地址 之间的界限并不是固定的,而界限的确定取决于地址的分类,下表总结了 IP 地址分类的方法:理解网络掩码:网络掩码的作用在于把网络地址从 I

2013-05-01 22:23:56 760

转载 python中单引号,双引号,三引号的区别

先说1双引号与3个双引号的区别,双引号所表示的字符串通常要写成一行 如: s1 = "hello,world" 如果要写成多行,那么就要使用\ (“连行符”)吧,如 s2 = "hello,\ world" s2与s1是一样的。如果你用3个双引号的话,就可以直接写了,如下: s3 = """hello, world, hahaha.""",那么s3实际上就是"h

2013-01-31 23:41:44 485

原创 SCONS使用记录

源文件的目录结构如下:src:| SConstruct| test.cpp| mA(目录):   | SConscript   | func.cpp其中test.cpp为主文件,中调用func.cpp中定义的函数SConstruct内容如下:subobj = SConscript(['mA/SConscript']) obj = subobj + Obje

2013-01-31 23:36:29 691

转载 C语言运算符优先级 详细列表

优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)/函数名(形参表) .成员选择(对象)对象.成员名

2013-01-27 22:35:32 285

转载 从一道笔试题来看指针的使用

不运行程序,问下面代码的输出是什么?1 #include2 using namespace std;3 int main()4 {5 char *str[]={"welcome","to","Fortemedia","Nanjing"};6 char**p=str+1;7 str[0]=(*p++)+2;8 str[1]=*(p+1);

2013-01-27 22:16:45 344

转载 Linux下GCC使用方法简介

编译:第一步、是进行预编译,使用 -E 参数可以让GCC在预处理结束后停止编译过程:gcc -E hello.c -o hello.i预处理的宏定义插入到hello.i中第二步、是将hello.i编译为目标代码,这可以通过使用-c参数来完成:gcc -c hello.i -o hello.o也可以通过源文件直接生成gcc -c hello.c第三步、是将生成

2013-01-27 22:09:38 312

转载 进程间通信

一、进程间通信概述进程通信有如下一些目的:A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。D、资源共享:多个进程之间共享同样的资源。为了作

2013-01-23 23:33:03 236

转载 线程和进程

一.基础知识:线程和进程按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。无论按照怎样的分法,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cpu、内存、文件等等),而将线程分配到某个cpu上执行。一个进程当然可以拥有多个线程,此时,如果

2013-01-23 23:15:06 379

原创 CString,string,char*的转换及综合比较【ZT】

CString,int,string,char*之间的转换<br />string 转 CString<br />CString.format(”%s”, string.c_str());<br />char 转 CString<br />CString.format(”%s”, char*);<br />char 转 string<br />string s(char *);<br />string 转 char *<br />char *p = string.c_str();<br />CString

2011-04-17 22:20:00 371

原创 从一道面试题谈linux下fork的运行机制【ZT】

<br />给出如下C程序,在linux下使用gcc编译:<br /> 1 #include "stdio.h" 2 #include "sys/types.h"3 #include "unistd.h"4 5 int main()6 {7 pid_t pid1;8 pid_t pid2; 9 10 pid1 = fork();11 pid2 = fork();1213 printf("pid1:%d, pid2:%d/n"

2011-04-06 22:23:00 389

原创 【TCP-IP详解卷一:协议】二、IP 协议

<br />1. IP 数据报的格式<br />    普通IP首部长为20个字节,<br />     4个字节的32bit值以下面的次序传输:首先是0~7bit,其次是8~15bit,然后是16~23bit,最后是24~31bit。这种传输次序称作big endian字节序。<br /> <br />2. 子网寻址<br />     现在所有的主机都要求支持子网编址。不是把IP地址看成由单纯的一个网络号和一个主机号组成,而是把主机号再分为一个子网号和一个主机号。<br />     在InterNIC

2010-09-02 17:41:00 370

原创 【TCP-IP详解卷一:协议】一、概述

<br />1. IP地址<br />    互联网上的每个接口的唯一的Internet地址.<br />   IP地址长32bit, 4个字节。<br />   A类:0.0.0.0~127.255.255.255 <br />          (24位主机地址,7位网络地址,最高位为0)<br />   B类:128.0.0.0~191.255.255.255<br />          (16位主机地址,14位网络地址,最高两位为10)<br />   C类:192.0.0.0~223.255.2

2010-09-02 15:25:00 416

原创 yacc使用说明

yacc是一个语法分析程序的自动生成器。 yacc文件构成说明部分<br />%%<br />规则部分<br />%%<br />程序部分<br />%%"%{"与"%}"是说明部分的起始符和与结束符。 终端和非终端符号终端符号:代表一类在语法结构上等效的标记。<br />终端符号有三种类型: <br /> 命名标记:这些由 %token 标识符来定义。按照惯例,它们都是大写。 <br /> 字符标记:字符常量的写法与 C 相同。例如, -- 就是一个字符标记。 <br /> 字符串标记:写法与 C 的字符

2010-08-04 15:15:00 1454

转载 FLEX简介

     Lex输入文件由三部分组成:定义集(definition),规则集(rule),辅助程序集(auxiliary routine)。这三部分由位于第一行第一列的双百分号隔开,格式如下所示:   (definitions)   %%   (rules)   %%   (auxiliary routines) 1. 定义部分   定义部分出现在第一个双百分号之前, 包含两样东西:        (1). 必须插入到应在这一部分中分隔符"%{" 和 "}%"之间的任何函数外部的任意C代码。       (

2010-08-04 14:30:00 1841

转载 回调函数

1. 什么是回调函数?与其他函数有什么区别?    回调函数和其他函数没什么区别,只是回调函数有固定的参数和调用约定,比如windows的回掉函数都要用stdcall. 参数是由调用这个回调函数的函数传递的,当然要规定好参数格式。使用很简单,就是传递这个回调函数的地址给调用的函数作为一个参数. 2. C语言中的回调     回调在C语言中是通过函数指针来实现的,通过将回调函数的地址传给

2008-10-15 10:19:00 481

转载 仿 msn 闪屏震动

  INT nCxFrame    = ::GetSystemMetrics(SM_CXSIZEFRAME); INT nCyFrame    = ::GetSystemMetrics(SM_CYSIZEFRAME); INT nCyCaption  = ::GetSystemMetrics(SM_CYCAPTION); RECT rt; ::GetWindowRect

2008-09-19 17:04:00 490

原创 Doc--View 之间相互访问

1)   在View中获得Doc指针           CYourSDIDoc   *pDoc=GetDocument();一个视只能有一个文档。         2)   在App中获得MainFrame指针     CWinApp   中的   m_pMainWnd变量就是MainFrame的指针     也可以:           CMainFrame   *pMain   =(CMai

2008-07-16 16:50:00 459

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除