- 博客(47)
- 资源 (16)
- 收藏
- 关注
转载 Linux环境下VI/VIM编辑文件时无权限保存的解决方法
在Linux环境下,如果直接使用VI/VIM命令编辑没有修改权限的文件时,保存的时候就会提示用户无法进行保存操作,一般的解决方法只能是关闭文件重新以sudo权限打开该文件编辑后再保存(前提是用户具有sudo权限)。其实,在VI/VIM模式下通过一些简单的命令,就能在不关闭当前文件的情况下达到保存文件的目的(感谢晓哲老师提供的方法):输入命令:%! sudo tee % > /dev/nul
2012-07-07 19:05:06
2287
转载 一个数以最少步骤分解为另外两个数和差问题的解决
有同学面试的时候遇到要求一个数以最少步骤分解为另外两个数和差问题的解决,大约描述是“将一个数分解为几个数的和或者差的形式,并且使步骤最小”。这类题的解题理论是数论里面的一次不定方程的整数解。引用 百度百科:定义1. 形如 ax + by = c ( a,b,c∈Z,a
2011-09-02 22:02:40
878
原创 C库源代码实现: strtok
NetBSD实现:1: char* strtok_r(char* string_org,const char* demial,char** last) 2: { 3: const char* spanp; //span表示分隔,p表示指针 4:
2011-09-02 10:57:15
1208
原创 浅谈模板函数的重载解析优先顺序
函数模板可以被重载、显式特化重载、普通函数重载。如以下函数模板的重载声明:namespace LDQ_TEST{ //函数模板定义 template T sum( T, int ); //T == double的显式特化 template( doubl
2011-09-01 20:47:27
3326
转载 函数模板和模板函数
1.函数模板的声明和模板函数的生成1.1函数模板的声明函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计。它的最大特点是把函数使用的数据类型作为参数。函数模板的声明形式为:temp
2011-09-01 19:53:03
726
转载 类模板与模板类
1.类模板与模板类的概念⑴ 什么是类模板 一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员、默写成员函数的参数、某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的)。 如果一个类中数据成员的数据类型不能确定,或者是某
2011-09-01 19:36:08
516
转载 boost pool, object_pool实现
一:class simple_segregated_storage; boost/pool/simple_segregated_storage.hppsimple_segregated_storage (以下用SSS替代)实现一个单向链表,链表的每个节点是一个固定大小
2011-09-01 16:39:02
1497
转载 C++对象布局及多态实现的探索
虚函数的类的对象布局(1) 如果类中存在虚函数时,情况会怎样呢?我们知道当一个类中有虚函数时,编译器会为该类产生一个虚函数表,并在它的每一个对象中插入一个指向该虚函数表的指针,通常这个指针是插在对象的起始位置。所谓的虚函数表实际就是一个指针数组,其中的指针指向真正的
2011-09-01 15:40:47
524
转载 C++ Primer学习笔记 多重继承与虚继承
http://www.cublog.cn/u/18517/showart_252162.html题记:本系列学习笔记(C++ Primer学习笔记)主要目的是讨论一些容易被大家忽略或者容易形成错误认识的内容。只适合于有了一定的C++基础的读者(至少学完一本C++教程)。
2011-09-01 14:51:33
542
转载 用 C++ 设计一个不能被继承的类
分析:这是Adobe 公司 2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++ 基本功底外,还能考察反应能力,是一道很好的题目。 在Java 中定义了关键字 final ,被 final 修饰的类不能被继承。但在 C++ 中没有final
2011-09-01 14:01:01
395
原创 内存管理内幕--Jonathan Bartlett (johnnyb@eskimo.com), 技术总监, New Media Worx--
Jonathan Bartlett (johnnyb@eskimo.com), 技术总监, New Media Worx2004 年 11 月 29 日本文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言
2011-09-01 12:48:32
770
转载 引用计数
引用计数是这样一个技巧,它允许多个有相同值的对象共享这个值的实现。这个技巧有两个常用动机。第一个是简化跟踪堆中的对象的过程。一旦一个对象通过调用new被分配出来,最要紧的就是记录谁拥有这个对象,因为其所有者--并且只有其所有者--负责对这个对象调用delete。但是,所有权可以被
2011-09-01 10:31:24
520
原创 GCC下宏扩展后的++i
听讨论的时候,遇到一题是关于++i*++i的——这样的讨论意义不大,却也可以一窥编译器对相关问题的处理。原题如下相关代码说明如下#include stdio.h>#define POWER(X) X*Xint main(){ int
2011-08-31 20:53:23
537
转载 epoll使用详解(精髓)
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听
2011-08-30 20:51:18
470
转载 HFile存储格式
HBase中的所有数据文件都存储在Hadoop HDFS文件系统上,主要包括上述提出的两种文件类型: 1. HFile, HBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件,实际上StoreFile就是对HFile做了轻量级包装,即St
2011-08-10 10:22:03
619
转载 关于IO的同步,异步,阻塞,非阻塞
虽然网络上充斥了大量关于同步、异步、阻塞、非阻塞的文章,但大都是抄来抄去,没有一个权威的说法。但我找到了这一篇文章,该文章引用了《UNIX网络编程 卷1》的介绍,这本书的作者是Richard Stevens。如果有Richard Stevens在这方面的定义或者结论,那么我想,这
2011-08-10 09:49:06
491
转载 Cassandra存储机制
在2009年兴起的NoSQL运动中,Cassandra是其中重要的一个分布式key-value数据库产品,由Facebook在2008年开源,目前是Apache的顶级项目。最近twitter的一篇声明,表示将从MySQL迁移到Cassandra,更让其声名大振。Cassandra
2011-08-09 10:35:46
624
原创 函数式编程扫盲篇
<br /><br />1. 概论<br />在过去的近十年的时间里,面向对象编程大行其道。以至于在大学的教育里,老师也只会教给我们两种编程模型,面向过程和面向对象。<br />孰不知,在面向对象产生之前,在面向对象思想产生之前,函数式编程已经有了数十年的历史。<br />那么,接下来,就让我们回顾这个古老又现代的编程模型,让我们看看究竟是什么魔力将这个概念,将这个古老的概念,在21世纪的今天再次拉入了我们的视野。<br /><br />2. 什么是函数式编程<br />在维基百科中,已经对函数式编程有了很
2011-05-21 20:49:00
654
转载 Trie树|字典树的简介及实现
<br />Trie,又称字典树、单词查找树,是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。<br />相对来说,Trie树是一种比较简单的数据结构.理解起来比较简单,正所谓简单的东西也得付出代价.故Trie树也有它的缺点,Trie树的内存消耗非常大.当然,或许用左儿子右兄弟的方法建树的话,可能会好点.<br /><br />其基本性质可以归纳为:<br />1. 根节点不包含字符,除根节点外每一个节点都只包含一个字符。 <br />2. 从根节点到某一节点,路径上经
2011-05-07 19:56:00
467
原创 KFS安装问题
<br /><br />KFS是GFS的一个C++开源实现,基本原理可以参考中文版[url]http://www.codechina.org/doc/google/gfs-paper/introduction.html[/url],英文版[url]http://labs.google.com/papers/gfs-sosp2003.pdf[/url]<br />源码下载地址:[url]http://sourceforge.net/projects/kosmosfs/[/url]<br />KFS与HDFS的
2011-05-06 10:30:00
831
原创 Linux--Linux互斥锁、条件变量和信号量
<br /><br />转载自 http://hi.baidu.com/yanxionglu/blog/item/a3eafdece87015f0b2fb95cd.html<br />进行多线程编程,最应该注意的就是那些共享的数据,因为无法知道哪个线程会在哪个时候对它进行操作,也无法得知哪个线程会先运行,哪个线程会后运行。所以,要对这些资源进行合理的分配和正确的使用。在Linux下,提供了互斥锁、条件变量和信号量来对共享资源进行保护。<br />一、互斥锁<br />互斥锁,是一种信号量,常用来防止两个进程
2011-04-24 23:18:00
532
原创 unix linux 文件锁
<br /><br />创建锁文件对于资源的排他访问,例如串口,是相当合适的,但是对于访问大的共享文件就是太好了。假如我们拥有一个由一个程序写入的大文件,但是是由许多不同的程序进行持续更新的。当一个程序正在记录一些在较长的时间内所得到的数据,并且正在为其他的一些程序进行处理时就会出现这样的情况。这些正在处理的程序并不会等待日志程序结束--他们是连续运行的--所以他们需要一些合作的方法从而可以提供对于同一个文件的同时访问。<br /><br />我们可以通过锁住文件的一个区域来到达这种结果,这样只是文件的某一
2011-03-07 20:06:00
996
原创 ZZIO模型– 同步和阻塞,异步和非阻塞的区别
<br /><br />在http://hi.baidu.com/deep_pro/blog/item/cf964b0ade9f4d1594ca6b1b.html<br /> <br />这些词之间的区别难倒了很多人,还有什么同步阻塞, 同步非阻塞, 异步阻塞, 异步非阻塞,乱七八糟的。<br />很多文章也想讲明白这个问题。著名且引起热议的有<br />http://www.ibm.com/developerworks/cn/linux/l-async/<br />http://www.cppblog.c
2011-02-27 14:01:00
5671
原创 ZZ讲讲volatile的作用
<br />一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: <br /> 1). 并行设备的硬件寄存器(如:状态寄存器) <br /> 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) <br /> 3). 多线程应用中被几个任务共享的变量
2011-02-19 16:14:00
625
原创 linux totem 安装解码器
<br />fedora 10.<br /><br />totem 在最近由于版权等限制,只自带了很少一部分解码器,甚至播放mp3都需要下载解码器,但是,search一般都搜索不到任何解码器。<br />如果启用 RPM Fusion 软件仓库,它会自动搜索并安装 mp3 解码器。<br />打开一个终端吧,输入:<br /><br />su -<br />rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-s
2011-01-02 12:54:00
7498
原创 ZZ一道百度面试题:求数组中出现次数超过一半的数
<br /><br />一道百度面试题<br /> <br />现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。<br /> <br />Yzf给出的算法:<br />1. 遍历数组,如果元素的个数是1,算法退出<br />2. 元素两两比较,如果两个数相同,则删去一个,如果两个数不同,则都删去。<br />3. 重复执行1<br /> <br />复杂度分析:<br />每次遍历至少要删掉n/2个元素,首次遍历元素的个数是n,<br />segma
2010-12-21 21:21:00
2670
原创 UNIX进程组,会话期,作业控制
<br /><br />在UNIX系统中,作业控制允许在一个终端上启动多个作业(进程组),控制哪一个作业可以存取该终端,以及哪些作业在后台运行。<br />为了支持作业控制,引入了进程组,会话期,控制终端等概念,还需要内核以一定的信号支持。<br />一·进程组。<br />每一个进程除了有一个进程PID之外,还属于一个进程组,用进程组ID表示。返回当前进程组ID的系统调用为:pid_t getpgrp();<br />每个进程组都有一个组长进程,组长进程的标识是进程组ID等于其进程ID。<br />进程可
2010-12-15 15:03:00
1393
原创 分布式文件系统MFS(moosefs)实现存储共享(第二版)转
<br />分布式文件系统MFS(moosefs)实现存储共享(第二版)作者:田逸(sery@163.com)由于用户数量的不断攀升,我对访问量大的应用实现了可扩展、高可靠的集群部署(即lvs+keepalived的方式),但仍然有用户反馈访问慢的问题。通过排查个服务器的情况,发现问题的根源在于共享存储服务器NFS。在我这个网络环境里,N个服务器通过nfs方式共享一个服务器的存储空间,使得NFS服务器不堪重负。察看系统日志,全是nfs服务超时之类的报错。一般情况下,当nfs客户端数目较小的时候,NFS性能不
2010-12-05 17:31:00
635
原创 分布式文件系统MFS(moosefs)实现存储共享(第二版)转
<br />分布式文件系统MFS(moosefs)实现存储共享(第二版)作者:田逸(sery@163.com)由于用户数量的不断攀升,我对访问量大的应用实现了可扩展、高可靠的集群部署(即lvs+keepalived的方式),但仍然有用户反馈访问慢的问题。通过排查个服务器的情况,发现问题的根源在于共享存储服务器NFS。在我这个网络环境里,N个服务器通过nfs方式共享一个服务器的存储空间,使得NFS服务器不堪重负。察看系统日志,全是nfs服务超时之类的报错。一般情况下,当nfs客户端数目较小的时候,NFS性能不
2010-12-05 17:31:00
531
转载 KFS[CloudStore] 使用fuse挂载方法
<br /><br />1, 下载fuse-2.8.4.tar.gz<br />2, tar -xzvf fuse-2.8.4.tar.gz<br />3, ./configure && make && make install<br />注:需要root权限<br />4, echo “/usr/local/lib” >> /etc/ld.so.conf<br />/sbin/ldconfig<br />5, /sbin/modprobe fuse<br />6, 修改kfs-0.5中CMake
2010-12-03 15:24:00
898
原创 hypertable安装
参考资料:http://code.google.com/p/hypertable/wiki/HowToBuild#Building,_Installing,_and_Running_Tests安装平台:fedora 10基本依赖关系:1)yum install git gcc-c++ make cmake python-devel bzip2-devel zlib-devel expat-devel rrdtool rrdtool-devel2)wget http://downloads.sourcefor
2010-12-02 23:35:00
2696
转载 在linux下使用CMake构建应用程序
<br /><br />本文介绍了一个跨平台的自动化构建系统 CMake 在 linux 上的使用方法。 CMake 是一个比 automake 更加容易使用的工具,能够使程序员从复杂的编译连接过程中解脱出来。文中通过一些例子介绍使用 CMake 处理多源文件目录的方法、查找并使用其他开发包的方法以及生成 debug 版和 release 版程序的方法。<br />CMake 简介<br /> CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程
2010-11-26 14:32:00
497
原创 log4cpp安装报错
错误“BasicLayout.cpp:37: error: expected constructor, destructor, or type conversionbefore ‘需要一个patch Index: log4cpp-1.0/src/BasicLayout.cpp===================================================================--- log4cpp-1.0.orig/src/BasicLayout.cpp 2008-0
2010-11-26 11:11:00
1004
原创 berkeley db安装的问题
<br />可能不生成libdb_cxx.a库文件、因为对源码configure时需要加入参数../dist/configure --enable-cxx<br />这样生成库
2010-11-25 23:39:00
610
转载 Using g++
Using g++Most of this document was taken nearly verbatim from Paul Hilfinger. Any errors introduced, however, are David Wolfe's.IntroductionGNU provides are a publicly-available optimizing compilers (translator) for C, C++, Ada 95, and Objective
2010-11-23 21:39:00
637
转载 Makefiles
BackgroundFirst of all, anyone who does not know how to write a makefile must have missed the first discussion section (in the second week of class), because there was a handout on makefiles and tar.Note: this was written for the g++ compiler. You shou
2010-11-23 21:03:00
926
转载 怎样成为一名Android开发者
<br />Chris(克里斯)是一位来自波兰的Android应用开发者,最为一名非著名的开发者他开发的应用在Android Market上免费提供下载,并通过广告获得收入,最近他在自己的博客上面分享了从事Android开发带来的收入情况,并通过自己的经历给予 Android开发入门者非常忠实的忠告。作为国内从事Android开发的同行,APP虎第一时间发现并翻译了他的文章,以与广大Android开发者和即将进入Android开发的人们分享。<br />很多人认为从事Android开发是一件赔本的买卖。 他
2010-11-20 09:40:00
460
转载 函数指针与typedef
<br />于C++中函数指针的使用(包含对typedef用法的讨论) <br />(一)简单的函数指针的应用。<br />//形式1:返回类型(*函数名)(参数表) <br />char (*pFun)(int); <br />char glFun(int a){ return;} <br />void main() <br />{ <br /> pFun = glFun; <br /> (*pFun)(2); <br />} <br /> 第一行定义了一个指针变量pFun。首先
2010-11-10 11:57:00
392
转载 Java中回调机制
<br />Java中的回调(callback)是很重要的一个概念,spring整合hibernate大量使用了这种技术。<br />究竟怎样才是回调呢?<br />这是网上最多见到的说明: <br />1.class A,class B <br />2.class A实现接口callback<br />3.class B拥有一个参数为callback接口类型的函数<br />4.class A运行时调用class B中的函数,以自身传入参数 <br />5.class
2010-11-10 11:04:00
775
原创 extern用法详解(转)
<br /><br />1 基本解释<br /> extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。<br /> 另外,extern也可用来进行链接指定。<br />2 问题:extern 变量<br /> 在一个源文件里定义了一个数组:char a[6];<br /> 在另外一个文件里用下列语句进行了声明:extern char *a;<br /> 请问,这样可以吗? <br /> 答案与分析:<br /> 1)、不
2010-11-05 21:22:00
360
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人