- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 LINUX定时器--使用
封装一下定时器。timer.h#ifndef TIMER_H#define TIMER_H#define TIMER_INVALID_TIMER_ID (~0UL)#ifndef ULONG#define ULONG unsigned long#endif#ifndef VOID#define VOID void#endiftypedef VOID(*TIMER_FUNC_P...
2018-06-15 10:44:45
257
原创 算法:输入一个数组,对每个元素打印第一个满足比该元素大并且在该元素后面的元素的下标,若不存在这样的元素则打印-1。
INPUT0123456759304569OUTPUT元素:5 9 3 0 4 5 6 9下标:1 -1 4 4 5 6 7 -1实现方法:用栈实现步骤1:遍历所有元素做:若栈非空并且栈顶元素小于当前元素则弹出所有小于当前元素的栈内元素,并打印当前元素的下标,然后将当前元素入栈。步骤2:若栈非空,弹出栈内所有元素并同时打印-1.C++实现#include <s...
2018-06-12 00:48:04
1008
原创 linux用户态与内核态通讯及如何编写内核模块
通讯方式:procfs/socket/syscall/IOCTL常用的是socket/syscall/ioctl.ioctl机制,ioctl机制可以在驱动中扩展特定的ioctl消息,用于将一些状态从内核反应到用户态。Ioctl有很好的数据同步保护机制,不要担心内核和用户层的数据访问冲突,但是ioctl不适合传输大量的数据,通过和内存映射结合可以很好的完成大量数据交换过程。但是,ioctl的发起方一...
2018-06-08 17:30:43
1328
原创 加载或卸载内核模块
加载内核模块:insmod /lib/modules/2.6.18-398.el5/kernel/drivers/net/pcnet32.ko卸载模块[root@localhost ~]# rmmod pcnet32.ko查看内核模块:modeprove [-lcfr] module_name-c :列出目前系统所有的模块-l :列出目前在/lib/modules/`uname -r`/ker...
2018-06-08 16:46:32
355
原创 Linux 第一个进程
pid=1 :init进程,系统启动的第一个用户级进程,是所有其它进程的父进程,引导用户空间服务。pid为 1 的一定是init进程.它是内核运行后的第一个进程. 它的作用你可以在网上查一下.总的来说功能很多.包括 runlevel, 驱动, 启动服务啥地都会做,感觉事情很多.pid=2 :kthreadd:用于内核线程管理。pid=3 :migration,用于进程在不同的CPU间迁移。pid=...
2018-06-08 16:42:47
5011
原创 Bloom-Filter的基本思想
Bloom-Filter的基本思想Bloom filter 是由 Howard Bloom 在 1970 年提出的二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员。如果检测结果为是,该元素不一定在集合中;但如果检测结果为否,该元素一定不在集合中。因此Bloom filter具有100%的召回率。这样每个检测请求返回有“在集合内(可能错误)”和“不在集合内(...
2018-06-08 16:23:15
606
1
原创 大数据去重——位图
100亿整型数据去重?整型数据为32位最多有2^32(42亿多),所以100亿整型数据一定有重复的,2^32个整形用位表示,需要(2^32)bit==512MB,需要512MB内存表示。下面是去重算法:#include <stdio.h>#include <stdlib.h>#define MAX (0xffffffff)void setBuf(char *buf...
2018-06-08 15:00:32
2718
3
原创 大数据问题常用的解决技巧
大数据处理无非面临的问题 数据量大,内存有限、处理效率的要求。处理大数据核心思想是:(1)大而化小分而治之(2)降低精确度提高效率(3)问题步骤分解并行处理-----类似于CUP流水线常处理的问题:(1)大数据集合查找TOP K问题。(2)大数据集合去重问题。(3)大数据集合求交集问题。(4)大数据集合求元素频率问题。解决问题的方法:问题实例:一. 设计算法找到每日访问百度出现次数最多的10...
2018-06-08 14:53:48
2477
原创 epoll讲解
在linux下的网络编程中,很长的时间都在使用选择来做事件触发。在Linux的新的内核中,有了一种替换它的机制,就是epoll的。相比于选择,epoll的最大的好处在于它不会随着监听FD数目的增长而降低效率。因为在内核中的选择实现中,它是采用轮询来处理的,轮询的FD数目越多,自然耗时越多。并且,在LINUX / posix_types.h头文件有这样的声明:#define __FD_SETSIZE...
2018-06-06 17:00:25
204
原创 C++面试整理
1.new、delete、malloc、free关系区别:malloc与free是C++/C语言的标准库函数;new/delete是C++的运算符,delete会调用对象的析构函数,new调用构造函数。相同点:它们都可用于申请动态内存和释放内存2.delete与 delete []区别delete只会调用一次析构函数,而delete[]会调用每一个成员的析构函数。delete与new配套,dele...
2018-06-06 15:18:39
165
原创 复习一下数据结构——图
图是一种网状结构,图分为有向图和无向图。图的存储方式:1、邻接矩阵存储又称为二维数组存储。2、邻接表存储法3、十字链表存储法图的遍历:1.求图的连通性问题2.图的拓扑排序(有向带权图)将入度为0的顶点vi加入V,删除该顶点及该顶点对应的弧度,再次查找入度为0的顶点重复上面操作,直到不存在入度为0的顶点。若此时输出的顶点数小于图中的顶点数则说明存在环。(若存在顶点无法加入V,说明该图存在回路)3.图...
2018-06-06 13:43:44
402
原创 复习一下数据结构——树
//*************************************************************************// 【前序】遍历算法//二叉树不空,先访问根结点,然后前序遍历左子树,再前序遍历右子树//*************************************************************************vo...
2018-06-06 10:15:53
171
原创 复习数据结构————字符串
/* *实现字符串拷贝 *为什么要返回char*?(为了支持链式表达式,如strlen(strcpy(p,q)求复制后的长度)) */ char* strcpy(char* strDest,const char* strSrc){ if(strDest==NULL||strSrc==NULL) return NULL; char* strDes...
2018-06-06 09:43:44
137
原创 复习一下数据结构——栈
栈是一种先进后出的数据结构。原c++栈的方法的基本用法: push(): 向栈内压入一个成员;pop(): 从栈顶弹出一个成员;empty(): 如果栈为空返回true,否则返回false;top(): 返回栈顶,但不删除成员;size(): 返回栈内元素的大小;栈顶指针指向栈顶元素,出栈时先取栈顶元素,然后移动栈顶指针。 ...
2018-06-06 09:30:38
161
原创 dpdk rte_ring无锁队列 及 内核kfifo
kfifo是内核里面的一个FIFO数据结构,采用环形循环队列的数据结构来实现;它提供一个无边界的字节流服务,最重要的一点是,它使用并行无锁编程技术,即当它用于只有一个入队线程和一个出队线程的场情时,两个线程可以并发操作,而不需要任何加锁行为,就可以保证kfifo的线程安全。 kfifo代码既然肩负着这么多特性,那我们先一敝它的代码:struct kfifo { unsigned char ...
2018-06-05 16:53:41
1250
原创 SUSE 11SP3安装osquery及zabbix-agent
1.升级系统依赖库的libc:wget http://ftp.gnu.org/gnu/glibc/glibc-2.12.1.tar.gzwget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.12.1.tar.gz tar -xvf glibc-2.12.1.tar.gz tar -xvf glibc-ports-2.12.1.tar.gz m...
2018-06-02 16:24:37
2023
原创 glibc.so.2_14安装
各版本下载地址:下载地址 下载地址 下载地址wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gzwget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.gz 解压tar -xvf glibc -2.14.tar.gz tar -xvf glibc-ports-2.14.tar.gz安装...
2018-06-02 15:26:49
607
原创 JAVA环境配置
JAVA_HOME=/var/local/java/jdk1.8.0_161JRE_HOME=/var/local/java/jdk1.8.0_161/jreCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libPATH=$JAVA_HOME/bin:$PATHexport PATH JAVA_HOM...
2018-05-02 14:16:18
122
原创 生成SSL的KEY
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600
2018-04-18 17:45:26
1844
原创 window目录挂载在cento上开发python,执行 ./test.py 提示 No such file or directory
原因是文件是msdos格式的,行尾是\r\n#转换成linux格式即可解决sed -i 's#\r##' test.py参考:命令行含义参考
2018-04-18 10:23:02
1707
原创 centos7 rabbitmq安装过程
1.下载软件 wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el6.noarch.rpm2.安装yum install ./rabbitmq-server-3.6.15-1.el6.noarch.rpm 3.启动MQservice rabbitmq-server star...
2018-04-16 13:08:36
202
原创 Centos7 安装Erlang
下载erlangwget http://erlang.org/download/otp_src_20.3.tar.gz解压文件:tar -xvf otp_src_20.3.tar.gz 配置安装cd otp_src_20.3/mkdir /usr/local/erlang./configure --prefix=/usr/local/erlangmake && make in...
2018-04-12 16:10:49
2659
转载 使用Zabbix监控RabbitMQ
使用Zabbix监控RabbitMQ:http://blog.51cto.com/john88wang/1745824
2018-04-12 11:30:52
1876
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人