自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

转载 Linux shell 的字符串截取

Linux 的字符串截取很有用。有八种方法。假设有变量 var=http://www.aaa.com/123.htm.1. # 号截取,删除左边字符,保留右边字符。复制代码代码如下:echo ${var#*//}其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://

2015-12-02 12:03:48 497

原创 GCC编译器局部变量地址分配为什么总是从低地址向高地址增加?

如题,使用GCC编译器时发现,局部变量的地址总是从低地址向高地址分配,而dev c中局部变量却是从高地址向低地址分配的?“栈分配的方向是从高地址向低地址分配,但在变量内部地址是从低地址向高地址增长。”一直都是这样理解的,以为所有编译器都是按照这种方式来分配变量地址的。但是gcc却不是,我用的版本是4.8.4.原因:GCC的堆栈保护技术—— canary的使用。使用的原因是为了防止某些溢

2015-11-23 17:26:26 4736 1

原创 记录一次剁手的"sudo rm -rf /bin"(误删linux /bin目录)

服务器系统:ubuntu12.04.1-server64位如题,使用普通用户权限:sudo rm -rf /bin删除了服务器上的整个/bin目录,由于/bin下安装有许多系统软件,所以直接导致ls的等命令无法使用。另外,注意linux下有一些系统的内置命令,如cd。这些内置命令都还是可以用的。遇到这样的问题,第一反应还是有点慌的,因为删的不是自己的系统文件,而是整个实

2015-07-25 12:18:42 11875 2

转载 浅析格式化串漏洞

作者:isno ([email protected])                -----------------目录-------------------                  一.前言                  二.基础知识简介                  三.格式化串漏洞原理                    (1)参数

2015-07-21 17:50:56 1569

转载 vim的visual模式

在可视化模式下,可以对一个文本块的整体进行操作。例如,首先高亮选中一部分文本,然后用d命令删除这个文本块。可视化模式的好处在于,你可以在做改动之前,就看到操作将影响的文本。可视化模式可以分为以下三种:用v命令进入的字符可视化模式(Characterwise visual mode)。文本选择是以字符为单位的。用V命令进入的行可视化模式(Linewise visual mode)。文本选择是

2015-07-17 15:15:45 860

转载 c++11 内存模型解读

关于乱序首先需要明确一个普遍存在,但却未必人人都注意到的事实:程序并不总是按照源码中的顺序被执行的,此谓之乱序,乱序产生的原因可能有好几种:编译器出于优化的目的,在编译阶段将源码的顺序进行交换。程序执行期间,指令流水被 cpu 乱序执行。cache 的分层及刷新策略使得有时候某些写,读操作的顺序被重排。以上乱序现象虽然来源不同,但从源码的角度,对上层应用程序来说,他们的效果

2015-05-25 11:14:53 1724

转载 C++中的默认函数与default和delete用法

一、类中的默认函数 a.类中默认的成员函数 1.默认构造函数 2.默认析构函数 3.拷贝构造函数 4.拷贝赋值函数 5.移动构造函数 6.移动拷贝函数 b.类中自定义的操作符函数 1.operator 2.operator& 3.operator&& 4.operator* 5.operator

2015-05-25 08:36:16 1955

原创 C++顺序容器的capacity和reserve方法

verctor容器这样的顺序容器在内存的存储空间是连续的,而其后面的存储空间可能被其他数据占用,当在需要添加新的元素时,vector就需要重新分配存储空间以连续存储原来元素和新添加的元素。    为了使vector实现快速的内存分配,其实际分配的容量要比当前所需的空间多一点。vector容器的capacity和reserve方法使程序员可以与vectro容器的内存分配的实现部分交互工作。c

2015-05-07 20:39:37 1256

原创 迭代器的算数运算

支持随机访问的迭代器才可以使用:iter+n,iter-n,iter-iter的操作。如vector。list和map这类不支持以上三种操作,因为它们不支持随机访问,因此它们只支持自增和自减操作。那么,要想计算list和map的两个iterator之间的距离怎么办?答案是使用distance()。distance的原型如下:std::distancetemplate

2015-05-07 20:37:56 2002

转载 vim文本替换

vi/vim 中可以使用 :s 命令来替换字符串。该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询。     :s/vivian/sky/ 替换当前行第一个 vivian 为 sky     :s/vivian/sky/g 替换当前行所有 vivian 为 sky     :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行

2015-04-16 20:07:25 484

原创 ubuntu下安装apache http server

在ubuntu下。下载了apache http server直接编译安装的话,configure时会出现“APR not found ”的错误,是因为其所依赖的软件包没有安装。安装过程一步步理清依赖关系,正确使用命令行选项,安装apache http server会变得很简单。PS:Apache http server 需要依赖 apr、apr-util、pcre,所以要先下载和安装这

2015-04-14 15:20:25 872

原创 ubuntu下挂载win7共享目录

1.在win7下设置共享目录:在d盘新建一个文件夹share,右键选择设置共享,“选择与其共享的用户”,选择everyone。建好后:\\ZQ-PC\share就是其位置,ZQ-PC是我的机器名。2.在unbutu下挂载刚才建立的共享文件夹1)在unbutu的/mnt下建立win share文件夹:mkdir /mnt/winshare;2)在win7的

2015-04-14 11:11:25 2242

转载 左值表达式 右值表达式(C/C++)

何谓对象?这里所说的对象是广义上的,而不仅仅是狭义的类/对象(class/object)。在C/C++中,所谓的对象指的是执行环境中一块存储区域(a region of storage),该存储区域中的内容则代表了该对象的值(value)。注意到我们这里所说的"代表",对于一个对象,如果我们需要取出它的值,那么我们需要通过一定的类型(type)来引用它。使用不同

2015-01-19 17:43:59 5786

原创 ubuntu12.04-64位系统上安装s2e过程

S2E工具适用平台:     host OS: 64位ubuntu12.04或者64位Mac OS     guest OS:To run S2E, you need a QEMU-compatible virtual machine disk image. S2E can run any x86 operating system inside the VM.任何X86的OS都可以。

2014-09-25 21:46:45 1415

原创 ubuntu12.04-32位,安装KLEE及使用工具过程中遇到的问题

安装klee出现的问题:前面都没有错,最后make check时出现:make[1]: *** [check-local] Error 1网上查说make check运行时可能需要root权限。不对,make check不过对后面执行没有影响。不要KLEE运行的第一个小例子:使用klee_make_symbolic()函数来标明一个函数是符号变量

2014-09-23 10:07:17 2335 1

原创 ubuntu下安装KLEE方法

虾米原文地址:http://thread.gmane.org/gmane.comp.compilers.llvm.klee/923cd ~sudo apt-get -y install g++ curl dejagnu subversion bison flexmkdir workcd workwget http://llvm.org/releases/

2014-09-15 14:51:04 2037

原创 main函数的三个参数

mainhttp://blog.csdn.net/ixsea/article/details/6686308

2014-06-05 17:01:46 700

转载 do...while(0)的妙用

在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。    但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句。通常,如果在一个

2014-06-05 14:23:22 504

原创 ubuntu下查看源代码工具:ctags+taglist,另加understand

ctags直接apt-get就行,安装完后在需要的目录下,踩踏个

2014-06-05 10:47:30 3018

原创 关于C语言中宏定义的高级运用

1、# (stringizing)字符串化操作符。其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。其只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。如:#define example(instr) printf("the input string is:/t%s/n",#instr)#define example1(instr) #instr

2014-06-01 10:41:18 4793

转载 linux系统下可以屏幕取词的词典安装

点评:linux并不缺少词典软件、但是缺少词库、所有的词典软件都需要,自己下载安装词库、所以找词库成了一件麻烦的事情,下面与大家分享下Ubuntu安装英汉词典步骤,感兴趣的朋友可以参考下Ubuntu安装英汉词典linux并不缺少词典软件、但是缺少词库、所有的词典软件都需要 自己下载安装词库、所以找词库成了一件麻烦的事情。 1.安装stardict:apt-get insta

2014-05-05 11:10:29 4608

原创 定制ubuntu13.10

1.启动时中文字符菜单修改:在isolinux/目录下修改isolinux.cfg(我的上一篇博文详细介绍) 2. info( 安装时的标题): 在目录   .disk/info里修改。注意,在终端下ll就能看见.disk目录。注意,这个标题若是改成中文的,在试用时会需要用户名和密码,我也不清楚是为什么。本来开始我改的中文,后来只能用拼音代替了。 3. initrd.lz(控制启动换面

2014-04-10 15:53:33 636

原创 定制ubuntu13.10中文字符菜单

定制步骤:注意:我是在linux系统下完成定制的,但是后面碰到了问题,最后解决了(linux下还是可以的,只是下面有一步麻烦一点点)。但是总结一下,最好还是在windows下做吧。下载的ubuntu-13.10的镜像文件然后从里面提取的需要的文件(但是事实证明只需要下载一个isolinux包就可以了,因为它就是一个小型的linux系统)。下面就说我是如何利用这个镜像文件做出中文

2014-03-20 10:09:39 1394

原创 ubuntu下vi配置,解决按上下健等出现字母问题

首先要明确ubuntu下的编辑器是vi,不是vim。vim是vi的加强版,完全兼容vi,且有很多使得用户更易于使用的新特性。所以要想vi编辑器更好用,一般先把它升级为vim吧。使用vi命令时,不能正常编辑文件,使用方向键时老是出现很多字母在网上找了个方法 问题已经解决 分享一下:只要依次执行以下两个命令即可完美解决Ubuntu下vi编辑器方向键变字母的问题。一.执行命令

2014-03-13 15:32:04 2172

转载 bit_vector位向量容器

一、原理bit_vector位向量容器是一个bit位元素的序列容器,具有vector容器一样的成员函数,常用于硬件端口的控制。区别于vector的一个重要特性是bit_vector更节省内存空间,一个元素只占用一个bit,而不是一个字节。bit_vector用vector作后缀名,实际与vector并没有任何关联。bit_vector容器的每个元素是一个 bit 位值,取 0 或

2013-12-25 20:29:33 861

转载 Vim快速选中、删除、复制引号或括号中的内容

最近刚刚发现了一些VIM中,快速对引号或括号等标点内的内容进行选中、删除、复制操作的超级技巧,感觉非常实用。可以极大的提高编辑效率。以下命令可以对标点内的内容进行操作。ci'、ci"、ci(、ci[、ci{、cidi'、di"、di(或dib、di[、di{或diB、diyi'、yi"、yi(、yi[、yi{、yivi'、vi"、vi(、vi[、vi{、vi另外如果把上面的

2013-12-23 21:37:18 661

转载 内存中堆和栈的区别

一、预备知识:程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) :一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static

2013-12-12 14:53:10 557

转载 typeid详解

在揭开typeid神秘面纱之前,我们先来了解一下RTTI(Run-Time Type Identification,运行时类型识别),它使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在C++中,为了支持RTTI提供了两个操作符:dynamic_cast和typeid。    dynam

2013-11-28 11:25:21 590

原创 C++中基类和派生类的protcted成员的理解

看到《C++ primer》中文第4版的475页时,不懂protected成员的使用范围,特别是对这句:    派生类只能通过派生类对象访问其基类的protected成员,派生类对其基类类型对象的protected成员没有特殊访问权限。怎么读都觉得别扭,于是自己编程试了一下,可能对protected成员的使用情况未考虑周全,但是也能反映一些问题。代码的解释:基类为 shape,

2013-11-25 22:53:37 1273

转载 struct 和union的区别

C/C++的数据类型包括基本数据类型和非基本数据类型,基本数据类型就是整型、实型等,非基本数据类型也称为构造数据类型,包括数组类型、结构体类型和共用体类型。其中结构体类型和共用体类型分别通过关键字struct和union来声明或定义。  所谓构造数据类型,就是通过基本类型构造出来的类型嘛,因此构造数据类型的特点就是其中包含有多个元素,想想数组就明白了。数组中可以存放多个元素,但是每个元素的类型

2013-11-22 10:29:18 1122

原创 VEX IR

基本数据类型:/* Always 8 bits. */typedef  unsigned char   UChar;typedef    signed char   Char;typedef           char   HChar; /* signfulness depends on host */                                /

2013-11-21 11:11:49 35502

gcc3.4.6deb包

gcc-3.4-base_3.4.6-6ubuntu5_i386.deb

2014-05-20

翻译:Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation

学习valgrind必看的一篇论文-Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation,论文较长,这里是全文翻译。

2013-12-02

空空如也

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

TA关注的人

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