- 博客(379)
- 资源 (41)
- 收藏
- 关注
转载 哈夫曼树与哈夫曼编码
在一般的数据结构的书中,树的那章后面,著者一般都会介绍一下哈夫曼(HUFFMAN)树和哈夫曼编码。哈夫曼编码是哈夫曼树的一个应用。哈夫曼编码应用广泛,如JPEG中就应用了哈夫曼编码。 首先介绍什么是哈夫曼树。哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的 路径长度(若根结点为0层,叶结点到根结
2016-04-19 21:40:36 1189
原创 python psutil跨平台监控系统或进程信息(CPU,mem)
psutil is a cross-platform library for retrieving information onrunning processes and system utilization (CPU, memory, disks, network)in Python.https://pypi.python.org/pypi/psutil#!/usr/bi
2016-04-11 13:34:42 2414
原创 Docker使用心得
Docker是一个用了一种新颖方式实现的超轻量虚拟机,在实现的原理和应用上还是和VM有巨大差别,专业的叫法是应用容器(Application Container)。(我个人还是喜欢称虚拟机)Docker应用容器相对于 VM 有以下几个优点:启动速度快,容器通常在一秒内可以启动,而 VM 通常要更久资源利用率高,一台普通PC 可以跑上千个容器,你跑上千个 VM 试试性能开销小
2015-10-16 15:48:52 1782 1
转载 libiconv静态编译
Linux:1、//配置文件生成Makefile#./configure --prefix=/usr/local/lib --enable-static=yes注释:prefix要绝对路径,是存放bin lib doc的目录2、编译生成目标文件#make3、把目标文件拷贝到/usr/local/lib#make install4、清除
2015-09-29 13:35:03 3303
原创 利用linux命令sort和uniq求两个文件的交集并集和补集
给定两个文件 a.txt 和 b.txt ,每行是一个记录(假设没有重复),要求输出两集合的交集、并集、差集,输出的结果只包括唯一项。交集定义为同时出现在两个文件中的记录项,并集定义为出现在任何一个文件中的记录项,差集(A-B)定义为出现在A中而且不出现在B中的记录,对称差集定义为只出现在一个文件中的记录。假设 a.txt 包括 a, c, b 三行。假设 b.txt 包括 d, e,
2015-09-14 10:23:28 5730
转载 进程/线程同步——Critical Section,Mutex,Semaphore,Event区别
转自:http://blog.163.com/around-wind/blog/static/271230752009084037565/临界区(Critical Section) 保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进 入后其他所有试图访问此临界区的线程将被挂起,并一直
2015-09-08 13:51:20 1289
转载 linux 普通用户添加ssh或禁止ssh
1、添加用户,首先用adduser命令添加一个普通用户,命令如下:#adduser tommy //添加一个名为tommy的用户#passwd tommy //修改密码Changing password for user tommy.New UNIX password: //在这里输入新密码Retype new UNIX password: //再次输入新密码pa
2015-08-21 11:37:46 7670
原创 pytho获取磁盘剩余空间
需安装后Python for Windows Extensionshttp://sourceforge.net/projects/pywin32/files/pywin32/ if path is None: if os.name == 'nt': path = "C:\\" else: path = '
2015-07-20 10:29:14 5206
转载 wget下载FTP目录
wget -nH --cut-dirs=* -m --ftp-user=* --ftp-password=* ftp://*.*.*.*/*-nH:不创建以主机名命名的目录。--cut-dirs:忽略主机上的目录层数。-m:下载所有子目录并且保留目录结构。--ftp-user:FTP用户名--ftp-password:FTP密码ftp://*.*.*.*/*:FTP主机
2015-07-17 09:36:22 1875
转载 增加samba用户提示Failed to add entry for user
[root@ubuntu ~]# smbpasswd -a testNew SMB password:Retype new SMB password:Failed to add entry for user test.解决办法:这是因为没有加相应的系统账号,所以会提示Failed to add entry for user的错误,只需增加相应的系统账号test就可以了:
2015-07-16 17:30:37 2614
原创 nginx切割日志
nginx 利用 logrotate(程序是一个日志文件管理工具)进行日志管理nginx日志管理配置文件:/etc/logrotate.d/nginx/var/log/nginx/*.log { daily missingok rotate 48 compress delaycompress
2015-07-13 15:11:04 847
转载 深入浅出 RPC - 浅出篇
近几年的项目中,服务化和微服务化渐渐成为中大型分布式系统架构的主流方式,而 RPC 在其中扮演着关键的作用。在平时的日常开发中我们都在隐式或显式的使用 RPC,一些刚入行的程序员会感觉 RPC 比较神秘,而一些有多年使用 RPC 经验的程序员虽然使用经验丰富,但有些对其原理也不甚了了。缺乏对原理层面的理解,往往也会造成开发中的一些误用。本文分上下两篇《浅出篇》和《深入篇》,其目标就是想尝试
2015-05-20 21:16:35 1054
转载 深入浅出 RPC - 深入篇
《深入篇》我们主要围绕 RPC 的功能目标和实现考量去展开,一个基本的 RPC 框架应该提供什么功能,满足什么要求以及如何去实现它?RPC 功能目标RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC 框架需提供一种透明调用机制让使用者不必显式的区分本地调用和远程调用,在前文《浅出篇》中给出了一种实现结构,基
2015-05-20 21:16:33 1428
转载 .ssh/config
git操作时,每次push 代码 都必须重新ssh-add 上私钥1:利用Keychain 的服务及其管理程序2:利用/.ssh/config在~/.ssh目录下建立config文件,ssh命令每次会自动的读取该文件。Host 54.248.105.37User gitHostname 54.248.105.37PreferredAuthenti
2015-04-24 18:24:39 979
转载 Gprof -收集程序的统计信息
一. 概要 1. Gprof 是在运行中收集程序的统计信息。 程序的运行方式会严重影响统计的信息结果。因为不同的执行路径下,程序的行为方式会有很大的差别。 2. Gprof 使用步骤 (1) 编译链接程序的时候,使能Gprof (2) 执行程序生成profile data file (3) 使用
2015-04-24 11:43:38 773
转载 windows7 + vs2008 +WDk +DDkWizard 驱动开发环境搭建
1.安装vs20082.安装WDK安装包地址 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=11800 GRMWDK_EN_7600_1.ISO619.0 MB3.下载DDkWizard 在VS2008 ID
2015-03-30 15:25:20 2352
转载 Wdm.h、Ntddk.h 和 Ntifs.h 的组织结构
在 Windows Vista 版本的 WDK 之前,用于驱动程序开发的主要头文件为 Wdm.h、Ntddk.h 和 Ntifs.h,它们包含很多重复声明。从 Windows Vista 版本的 WDK 开始,Wdm.h、Ntddk.h 和 Ntifs.h 将按层次结构来组织并且不包含重复信息。上层的文件将包含下层的文件。每个函数和结构声明仅出现一次。Ntifs.h 包含 Ntdd
2015-03-30 15:13:04 3154
转载 linux 多线程下载工具axel
Linux下用的最多的下载工具莫过于wget和curl,这两个工具虽然堪称经典。但其单线程的速度越来越不能大软件的下载。Axel是Linux的一个下载工具。他可以进行多线程下载、断点续传和限速下载。安装和操作非常简单。1 下载axel插件的rpm包下载地址 http://pkgs.repoforge.org/axel/如果为centos 5
2015-03-24 10:54:05 4351
转载 Linux 下挂载硬盘
装虚拟机时空间划小了,于是又加了5G的空间,折腾了半天,挂上去了。整理下弄个笔记,备用。 1. 添加磁盘,查看磁盘状况 [root@db1 /]# fdisk -lDisk /dev/sda: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylinders
2015-02-15 14:09:53 873
原创 轻量级C语言实现的xml解析库minixml
1下载:http://www.msweet.org/downloads.php?L+Z32说明:Mini-XML是一个小型的开源的XML解析器,采用 C 语言开发。该解析器最大的特点就是小型、无须依赖其他类库,只需要 GCC 编译器 和 make 程序即可编译,支持 UTF-8/UTF-16 编码。Mini-XML支持读取UTF-8和UTF-16和UTF-8编码的XML文件和字
2014-12-01 23:02:49 16745
转载 操作系统安全的多层次性
操作系统安全是立体的、多方面的,移动设备的系统安全也概莫能外。从信息安全攻防对抗的角度看,操作系统安全自上而下体现为国家、企业、个人用户三个不同的安全层次。对于国家而言,首先应考虑的是如何保护国家秘密,在此基础上需关注操作系统的可见性与可控性;对于企业而言,首先要考虑的是购买成本和保护商业秘密,在此基础上需关注操作系统是否易于部署、易于管理以及是否易于数据聚合;对于个人用户而言,首先要考虑的是操作
2014-11-10 09:53:29 1014
转载 ubuntu 双网卡配置
auto loiface lo inet loopback# The primary network interfaceauto eth0iface eth0 inet static address 10.255.64.41 netmask 255.0.0.0 network 10.0.0.0 broadcast 10.2
2014-11-06 13:34:27 1003
转载 ubuntu12.04中shell脚本无法使用source的原因及解决方法
现象: shell脚本中source aaa.sh时提示 source: not found原因: ls -l `which sh` 提示/bin/sh -> dash这说明是用dash来进行解析的。改回方法: 命令行执行:sudo dpkg-reconfigure dash在界面中选择no再ls -l `which
2014-11-03 13:31:47 7403
转载 socket编程模型
最先出现的是阻塞模型,这个模型是讲解计算机网络时被作为例子介绍的,也是最简单的。其基本原理是:首先建立一个socket连接,然后对其进行操作,比如,从该socket读数据。因为网络传输是要一定的时间的,即使网络通畅的情况下,接受数据的操作也要花费时间。对于一个简单的单线程程序,接收数据的过程是无法处理其他操作的。比如一个窗口程序,当你接收数据时,点击按钮或关闭窗口操作都不会有效。它的缺点显而易见,
2014-10-22 16:43:14 1041
转载 select函数详解及实例分析
Select函数在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻
2014-10-22 16:29:50 1588
转载 纯C语言INI文件解析
在一个跨平台( Android 、Windows、Linux )项目中配置文件用 INI 格式,自己写了个解析库,纯C语言的,简单好用。 可以解析 INI 格式的字符串、解析文件、保存到文件。 下面是头文件:[cpp] view plaincopy#ifndef INI_PARSER_H #define IN
2014-10-17 17:49:21 1593
原创 pthread_join(pid) 返回值是22
预备知识:linux线程执行和windows不同,pthread有两种状态joinable状态和unjoinable状态,若是unjoinable状态的线程,这些资源在线程函数退出时或pthread_exit时自动会被释放。 如果线程是joinable状态,只有当你调用了pthread_join之后这些资源才会被释放,即只有不设置unjoinable状态时pthread_join才
2014-10-17 17:35:46 5237
转载 线程取消(pthread_cancel)
基本概念pthread_cancel调用并不等待线程终止,它只提出请求。线程在取消请求(pthread_cancel)发出后会继续运行,直到到达某个取消点(CancellationPoint)。取消点是线程检查是否被取消并按照请求进行动作的一个位置.与线程取消相关的pthread函数int pthread_cancel(pthread_t thread)发送终止信号给t
2014-10-17 11:46:25 861
转载 线程清理函数pthread_cleanup_push / pthread_cleanup_pop
线程可以安排它退出时需要调用的函数,这样的函数称为线程清理处理程序,线程可以建立多个清理处理程序。处理程序记录在栈中,也就是说它们的执行顺序与它们注册时的顺序相反。 pthread_cleanup_push来注册清理函数rtn,这个函数有一个参数arg。在以下三种情形之一发生时,注册的清理函数被执行: 1)调用pthread_exit。 2)作为对取消线程请求(p
2014-10-17 11:45:52 2104
转载 Minifilter的动态安装、加载及卸载
MINIFILTER框架的文件系统过滤驱动,无法使用的CreateService和OpenService进行动态加载。看了一下,使用Inf文件安装Minifilter驱动的方式是在注册表驱动服务项下比传统驱动多创建了Instances子键,然后读取DefaultInstance值,这个值标明了Instance选项,然后,再去读指定的Instance的Altitude和Flags值。
2014-10-10 09:46:24 2170
转载 一种巧妙的删除程序自己的方法
转自乘风原创程序近日看到网友询问如何实现程序运行之后把自己删除的方法,不知大家对木马甚么的兴趣实在太浓,还是想要这样的效果:用户只要一运行程序,可执行文件就没有了,可是程序还是在跑,胆小的只怕要喊"鬼呀!","老婆,快出来看上帝"甚么的 。其实最典型的用法是写反安装程序. 闲来无事,Bear掰到一种还算巧妙的“删除自己”的方法。 大家都知道,一般的程序运行的时候,可执行文件
2014-09-29 16:16:08 1421 1
转载 虚拟机检测技术攻防
前言在当今信息安全领域,特别是恶意软件分析中,经常需要利用到虚拟机技术,以提高病毒分析过程的安全性以及硬件资源的节约性,因此它在恶意软件领域中是应用越来越来广泛。这里我们所谓的虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件(比如VMware,Virtual PC ,VirtualBox),你可以在一台物
2014-09-05 11:40:56 5478
原创 ubuntu搭建SVN实现https协议传输
1安装(可参考http://wiki.ubuntu.org.cn/SubVersion)(1)安装subversion sudo apt-get install subversion(2)安装apache即apache svn工具: sudo apt-get install apache2 && apt-get install libapache2-svn
2014-09-03 10:16:29 6500
转载 字符串哈希函数
基本概念所谓完美哈希函数,就是指没有冲突的哈希函数,即对任意的 key1 != key2 有h(key1) != h(key2)。设定义域为X,值域为Y, n=|X|,m=|Y|,那么肯定有m>=n,如果对于不同的key1,key2属于X,有h(key1)!=h(key2),那么称h为完美哈希函数,当m=n时,h称为最小完美哈希函数(这个时候就是一一映射了)。在处理大规模字符串数据
2014-08-27 10:15:27 751
转载 Linux下查看某个进程的线程数量
有些时候需要确实进程内部当前运行着多少线程,那么以下几个方法值得一用。 1.根据进程号进行查询:# pstree -p 进程号# top -Hp 进程号2.根据进程名字进行查询:# pstree -p `ps -e | grep server | awk '{print $1}'`# pstree -p `ps -e | grep server | awk '{prin
2014-07-22 21:00:30 874
转载 线程池的研究及实现
什么是线程池?诸如web服务器、数据库服务器、文件服务器和邮件服务器等许多服务器应用都面向处理来自某些远程来源的大量短小的任务。构建服务器应用程序的一个过于简单的模型是:每当一个请求到达就创建一个新的服务对象,然后在新的服务对象中为请求服务。但当有大量请求并发访问时,服务器不断的创建和销毁对象的开销很大。所以提高服务器效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对
2014-07-22 13:20:31 1026
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人