自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(135)
  • 资源 (1)
  • 收藏
  • 关注

转载 va_list、va_start、va_arg、va_end的原理与使用

va_list、va_start、va_arg、va_end的原理与使用 概述 由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论.定义 大家先看几宏. 在VC++6.0的include有一个stdarg.h头文件,有如下几个宏

2017-07-22 18:37:17 467

原创 murmurhash

murmur hash 是一个高性能,低冲突率的hash算法,由Austin Appleby 2008 年第一次发布 一下是他关于算法一些参数发现的discussion Discussion   (Note, this was written for MurmurHash 1.0 and is only loosely applicable to 2.0)    I

2017-01-15 17:39:47 782

转载 shell if 判断

[ -a FILE ] 如果 FILE 存在则为真。 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。 [ -d FILE ] 如果 FILE 存在且是一个目录则为真。 [ -e FILE ] 如果 FILE 存在则为真。 [ -f FILE ] 如果 FILE 存在且是一个

2016-03-21 15:54:28 493

原创 cannot open GHOSTERR.TXT

今天装系统,遇到点问题,好久才解决,主要是不同goast之间会有冲突,今天装的goast 和之前安装的goast不同,用PE先格式化c盘  cannot open GHOSTERR.TXT  格式化c盘 c盘需要激活,估计是配置引导扇区之类 c盘太小,会导致安装不成功 不同盘之间会有冲突,可以用PE 一键goast

2016-02-24 00:30:02 7956

原创 nodeJs 笔记

require require(path)将文件以一个对象记载进来,模块只有在加载时初始化一次,require得到的可以理解为一个引用,以export导出当前文件的导出对象 export module js中一个文件是一个模块 通过命令行传递的js 为主模块,node a.js 则a.js 是程序的入口 模块路径解析 内置模块,不作路径解析,直接加载 node_module ,

2015-09-20 16:21:34 537

转载 boost库asio详解8——几个TCP的简单例

同步客户端 [cpp] view plaincopyprint? void test_asio_synclient()   {       typedef boost::asio::io_service IoService;       // 该命名空间下有几个常用类: accetpt, resolver, endpoint, socket  

2015-09-13 18:10:34 685

转载 linux下使用protobuf实现简单配置功能

前言:     程序一般需要load一些参数列表,一般来说我们可以通过linux自带的命令行解析函数来搞定(getopt_long,如果需要了解的man一 下,manpage里面是有example的),但是对于参数太多,我们不可能写满一屏幕进行传参吧,当然,我们的输入在linux里面也是有限制的。所以呢,一般的做法是load一个配置文件,进行解析;最近在研究了一下protobuf的使用,我们

2015-09-11 23:44:46 567

转载 RTB竞价中的cookie mapping技术

首先通过一些关键词解释普及或者回顾一下背景, ADX: Ad exchange的简称。一般特指Ad exchange平台模块 DMP: Data Management Platform的简称。DMP存储了流量、受众的各种特征信息。 DSP: Demand Side Platform的简称。可以看做流量的购买方,为广告主服务。广告主可以通过DSP购买流量,达到营销的目的。DSP可以

2015-09-09 11:52:21 844

转载 LibLinear(SVM包)使用说明

LibLinear(SVM包)使用说明之(一)README zouxy09@qq.com http://blog.youkuaiyun.com/zouxy09         本文主要是翻译liblinear-1.93版本的README文件。里面介绍了liblinear的详细使用方法。更多信息请参考:        http://www.csie.ntu.edu.tw/~cjli

2015-09-02 13:33:13 635

转载 c++ 连redis

今天,本人来学习如何用C++来操作redis数据库。通过hiredis.h接口来实现,目前只能在Linux环境使用。 hiredis.h的下载地址为:https://github.com/redis/hiredis 主要包括如下四个方法 1. redisContext* redisConnect(const char *ip, int port) 该函数用来连接redis数

2015-09-01 16:28:12 820 1

转载 boost::bind

最近在几经波折之后,终于对于boost::bind有点理解了。对于习惯了其他语言的人来说,boost::bind是个挺神奇的东西,它可以将你的方法适配成任何其他的方法。其实这得益于c++的模板以及操作符重载,去看boost::bind的实现就会发现它是一个有n多重载的函数,这些重载主要是为了适应函数的参数个数。   其实boost::bind的原理是函数对象,而函数对象就是一个重载了(

2015-09-01 14:04:23 364

转载 boost::lexical_cast

boost::lexical_cast为数值之间的转换(conversion)提供了一揽子方案,比如:将一个字符串"123"转换成整数123,代码如下: string s = "123";  int a = lexical_castint>(s);  这种方法非常简单,笔者强烈建议大家忘掉std诸多的函数,直接使用boost:: lexical_cast。如果转换发生了意外,lex

2015-09-01 13:53:18 441

转载 ctag 简述

Vi大家都很熟悉,某些情况下它是我们在Linux下唯一可用的文本编辑器。其实我们平时所指的VI其实是VIM(ViImproved,VI增强版)。有人常常拿VIM和emacs比较,VIM尽管不象emacs那样有那么多的功能,但是比emacs更方便、好用。VIM简单易用,只要看看VIM自带的vitutor,大约只要20分钟就能掌握VIM的用法。对于Linux下的C/C++的程序员,使用VIM+Ctag

2015-09-01 11:22:40 621

转载 clang_complete

使用vim的各位肯定尝试过各种各样的自动补全插件,比如说大名鼎鼎的 OmniCppComplete 。这一类的插件都是对 Ctags 生成的符号表进行字符串匹配来获得可能的补全项。他们在编写 C 代码的时候还是很好用的,但是到了 C++ 的环境情况就不同了,各种作用域的存在使得仅仅依靠符号表匹配的方式完全无法发挥作用。 比如我输入一个 SomeType 的对象 bar,然后我想得到成员变

2015-08-30 14:07:13 838

原创 redis 笔记

高性能key-value 数据库 set zset hash

2015-08-29 22:34:48 472

转载 二进制安全

二进制安全 C字符串中的字符必须符合某种编码(比如ASCII),并且除了字符串的末尾之外,字符串里面不能包含空字符,否则最先被程序读入的空字符将被误认为是字符串结尾,这些限制使得C字符串只能保存文本数据,而不能保存像图片、音频、视频、压缩文件这样的二进制数据。 举个例子,如果有一种使用空字符来分割多个单词的特殊数据格式,如图2-17所示,那么这种格式就不能使用C字符串来保存,因为C字符

2015-08-29 20:50:23 732

转载 GDB 命令

一:列文件清单        1.   list(l)   (gdb)   list   line1,line2             二:执行程序        要想运行准备调试的程序,可使用run(r)命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符()和外壳通配符(*、?、[、])在内。        如果你使用不带参数的run命令,gdb就再次使用你给

2015-08-28 22:30:12 459

转载 SIGPIPE信号

使用libevent编写websocket服务端时遇到了一个问题: 浏览器与服务端建立连接后,若刷新或关闭浏览器窗口(未监听相应事件并处理),服务端无法得知连接断开,按理说,这种情况属于client异常终止,跟拔网线的情况类似。这种情况下,服务端不知情,仍保留此连接,仍按照既定逻辑向client写数据,写了两次后,服务端程序终止(多次测试,均是第2次后终止),不是崩溃,是异常终止,非常不解。

2015-08-13 11:29:50 445

转载 Protobuf语言指南

Protobuf语言指南 l  定义一个消息(message)类型 l  标量值类型 l  Optional 的字段及默认值 l  枚举 l  使用其他消息类型 l  嵌套类型 l  更新一个消息类型 l  扩展 l  包(package) l  定义服务(service) l  选项(option) l  生成访问类 本指南描述了怎样使用protocolbuffer语言

2015-08-10 17:46:17 326

转载 G++ 输出高亮

color-compile show compile message with color when show up error/warning/note using gcc/g++/make (1) compile ("\make" means using system make, not alias) $ \make (2) install (need root per

2015-08-10 10:55:16 687

原创 oozie 笔记Workflow Notifications

可以配置 URL ,通过Http GET 获取job的通知 作业start end,状态改变都会创建一个通知,同伙URL 可获取 oozie.wf.workflow.notification.proxy可用来配置为通知为http,或者socket proxy     格式proxyHostname:port or proxyType@proxyHostname:port     默认使

2015-07-28 16:27:50 1100

转载 oozie 工作流程详解

简单之美 简单之美,难得简单,享受简单的唯美。 Main menu Skip to content Menu 首页 编程语言 算法 开源技术 数据库 服务器 数据挖掘 关于 搜索: Oozie工作流程定义详解 2014-03-04 19:21:02    Yanjun Oozie工作流程定义是一个DAG(Directed A

2015-07-28 11:00:07 1760

原创 oozie 学习笔记 action

action node出发workflowe 任务,可以是pig,java等! action触发的任务,都是在远程运行,而不是在oozie中运行! 触发的tasks 都是异步执行的,只有等到所有的tasks都执行完毕,才能调到下一个节点,同步执行的除外 oozie课通过回调(有唯一的URL),或者轮询探知任务结束,task应使用url通知,为防止网络等原因oozie会轮询探知任务结束!

2015-07-27 23:41:42 926

原创 oozie学习笔记

oozie远程触发一个工作,一个工作完成之后,返回oozie知行下一个 oozie是以DAG的形式执行,前一个执行完,下一个才能执行!   可以在工作流中使用参数化形式定义参数类似${inputDir}的形式,在提交工作时必须提供参数! Oozie workflows contain control flow nodes and action nodes. 工作流,包括控制流节点(con

2015-07-27 19:08:49 951

原创 pig 编程指南笔记(三) 高级应用

flatten: 用来降低,bag、tuple的嵌套级别!hadoop中存储是相对比较廉价的,所以可以将一些在sql中要单独提出存储其它标的数据,直接存储在记录中,用冗余减少join操作,应为在hadoop中join是很耗时的,在数据中嵌套bag,可以看做,记录中嵌套另一条记录!有时需要将这个条码分离出来,则可以用flatten如果bag中有多条数据,则会用这条数据,与原记录做叉积!如果ba

2015-07-26 12:10:13 443

原创 pig 编程指南笔记(二) 基础知识

加载: pig默认使用pigStora 函数加载 HDFS中的文件 默认的路径为当前用户的HDFS用户目录:/user/yourlogin 当然也可以指定完整的路径hdfs://localhost/data/filename 使用using指定用户指定的加载函数 可以指定参数,指定分隔符 divs = load 'filename' using pigStorage(',');--使‘

2015-07-25 18:27:30 654

原创 pig 编程指南笔记

pig数据类型: pig的基本数据类型是和java一样的 pig中有复杂的数据类型 map tuple 元组: 以圆括号包裹,类似于sql里的一张表,元组中的数据类型可以任意,也可以指定,用以pig环境进行类型检查! tuple长度固定,可以用下标取值! bag: bag是无序的,不能按下标去取,可以用foreach逐个获取! NULL: pig中null表示数据未知,或者是

2015-07-25 16:01:37 820

原创 mysql忘记root密码,修改root密码

killall -TERM mysqld 第二步,到root用户下, 使用无需密码的启动模式启动mysql /usr/local/mysql/bin/mysqld_safe --skip-grant-tables & 第三步,修改Mysql库中的user表,为root设置新的密码 mysql -uroot >use mysql > update user set

2015-07-23 14:57:54 381

转载 c++异常处理机制示例及讲解

        这两天我写了一个测试c++异常处理机制的例子,感觉有很好的示范作用,在此贴出来,给c++异常处理的初学者入门。本文后附有c++异常的知识普及,有兴趣者也可以看看。      下面的代码直接贴到你的console工程中,可以运行调试看看效果,并分析c++的异常机制。    #include "stdafx.h"  #include  #include  #incl

2015-06-12 11:59:15 324

原创 APUE笔记 高级进程间通信

UNIX 域套接字 unix域套接字,使用socket相同的接口,用于进程间通信 但它仅仅进行数据复制,不添加报头,不计算校验和 unix域套接字,在系统中创建两个文件,文件不实际存储数据,指向内核空间中相应地址! 使用socketpair创建一个类似于管道的socketfd fd[2],不同于管道,此管道是全双工的,在fd 0,1上可写可读! int socketpair(int

2015-04-27 12:55:27 541

原创 APUE笔记 网络IPC

套接字描述符 #include int socket(int domain, int type, int protocol); domain  协议族: AF_INETipv4 AF_INET6ipv6 AF_UNIX unix域 type 套接字类型 SOCKET_STREAM 流式字节流,tcp时使用这个  SOCKET_DGRAM

2015-04-25 18:36:30 397

原创 APUE笔记 进程间通信

管道 #include int pipe(int fds[2]); fd返回两个文件描述符,fd[0]读,fd[1]写! 管道是单双工的,只能一端写,另一端读,不能两边同时读写 管道实际上是在,内核中开辟了一个双向队列, 当队列写满(队空)时,继续写(读)管道会阻塞当前进程! 当写端关闭,继续读时返回EOF 当读端关闭,继续写时候发送SIGPIPE信号,默认关闭进程

2015-04-24 17:19:48 476

原创 高级I/O

对一些低速的系统调用可能会是得,进程阻塞 读不到     数据还没来, 管道、网络设备、终端设备 写满了     FIFO 打开不了,终端要先等待调制解调器应答。。。 锁 ioctl 进程通信 磁盘读写是会暂时阻塞调用者,但磁盘I/O系统调用不是“低速”的 非阻塞I/O,使得open read write 方式i/o时,这些操作不会永远阻塞! 对一个给定的

2015-04-23 22:18:52 339

原创 APUE笔记 线程控制

pthread_attr_destory 失败,无补救措施,内存泄漏,因为线程属性对应用程序是不透明的,用户不能操作属性的内存数据 线程属性 线程允许对线程相关的不同属性,设置属性值以细调线程行为 属性管理都以相同的形式,分别对应相应函数 属性初始化  pthread_XXattr_init 属性销毁      pthread_XXattr_destory 设置属性

2015-04-19 20:53:49 421

原创 APUE笔记 线程

概念 一个线程拥有表示线程执行环境的信息: 线程id 一组寄存器值,栈, 信号屏蔽字, errno变量 线程私有变量 进程的所有信息对线程共享 代码段,栈,堆,文件描述符! 线程测试宏_POSIX_THREADS 线程标识 线程用线程id标识,pthread_t pthead_t,在不同系统中看实现而定,so可能是结构体,为确

2015-04-18 17:04:49 385

原创 信号

sleep 在捕捉到信号,且信号处理函数返回所,会被终止挂起(sleep之前屏蔽的信号除了 SIGMALRM 都屏蔽,不能使挂起终止)! 时间到返回0, 收到信号处理完信号结束,返回剩余秒数! 对于alarm,看具体实现,若sleep以alarm实现,则可能会更新sleep之前设定的alarm值!(alarm(10);sleep(5);) nano sleep实现纳秒级别的

2015-04-18 16:10:38 392

转载 eclipse Hadoop环境配置

http://wenku.baidu.com/view/e9f04024bcd126fff7050b80.html

2015-04-16 12:12:22 375

原创 APUE 口令文件相关

linux中包含/etc/passwd(下称口令文件) 和阴影口令文件 在linux最初密码字放在口令文件中,而这个文件是人人可读的,缺少安全性!故现在系统一般放于阴影口令中!口令文件只存放一个X,或者*占位符! 阴影口令是一个单项加密处理过的用户口令副本! 口令文件中,各个字段按:分隔,这些字段包含在的passwd结构体中 root:X:0:0:root:/root:/bin/bash

2015-04-07 15:16:31 419

原创 APUE 标准I/O库

5.1FILE & 流 I/O  中操作都围绕stream进行,打开或创建一个文件是通常用一个流与文件绑定!FILE 文件对象,里面包含文件的缓冲区地址、缓冲区大小、缓冲区中的字符数、出错标志等!有些系统在缓冲区中保存,控制管理信息,so可能实际缓冲区大小比指定size小!流有单字节流& 多字节流(国际字符集多字符),称为流的定向      刚创建的流没有流定向    为定

2015-04-04 15:52:07 388

转载 APUE 文件补充 inode

Inode详解 2014-10-19 15:45:21 分类: LINUX 一、inode是什么 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性

2015-04-03 20:12:54 454

模拟时钟 代码 turblec 2.0

这是模拟时钟的全部代码,用于在tc上运行,包括画表盘,指针等

2011-07-09

空空如也

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

TA关注的人

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