自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

转载 Linux下可执行文件格式详解

Linux下面,目标文件、共享对象文件、可执行文件都是使用ELF文件格式来存储的。程序经过编译之后会输出目标文件,然后经过链接可以产生可执行文件或者共享对象文件。Linux下面使用的ELF文件和Windows操作系统使用的PE文件都是从Unix系统的COFF文件格式演化来的。我们先来了解一些基本的想法。首先,最重要的思路是一个程序从人能读懂的格式转换为供操作系统执行的二进制格式之后,代码和

2017-06-30 22:04:19 300

原创 常量字符串,字符串变量——存储位置

指针方式创建的字符数组,是常量字符串,指针指向的内容是没法更改的;方括号([])方式创建的字符数组仅仅是变量,内容可以更改。#includeusing namespace std;int a = 0; //全局初始化区(data段)char *p1; //全局未初始化区(bss段)int main(){ int b; //栈 char s[] = "abc"; //栈,s是字符串

2017-06-30 20:20:27 912

转载 static作用(修饰函数、局部变量、全局变量)

首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0。在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。一个文件的全局变量和函数可以被另一个文件访问。为理解这句话,我举例来说明。

2017-06-30 11:06:27 388

转载 重载、覆盖和隐藏的区别

在继承关系中,虚函数是根据指针指向的对象来确定调用哪个函数,而非虚函数是根据指针的类型来选择调用哪个函数,跟指向的对象无关。以下参考博客:1.重载:重载从overload翻译过来,是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。示例代码如下:class A{public: void

2017-06-29 22:57:07 428

转载 重写(覆盖)、重载、多态

参考博客http://blog.csdn.net/ericbaner/article/details/3857268http://blog.csdn.net/weigb/article/details/18641921、多态和重载的区别多态是基于对抽象方法的覆盖来实现的,用统一的对外接口来完成不同的功能。重载也是用统一的对外接口,来完成不同的功能。那么两者有什么区别呢?

2017-06-29 19:48:30 242

转载 虚函数和纯虚函数

参考博客虚函数只能借助于指针或者引用来达到多态的效果。称带有纯虚函数的类为抽象类,抽象类是不能定义对象的。虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。虚函数为了重载和多态的需要,在基类中是有定义的,即便定义是空(空定义就是大括号为空,而没有大括号会报错),所以子类中可以重写也可以不写基类中的此函数!纯虚函数在基类

2017-06-29 17:35:02 290

转载 this指针 静态成员 友元

一、this指针在建立对象时,系统会为每一个对象分配独立的存储空间,也就是给每个对象中的数据成员都分配有自己独立的存储空间。如果对同一个类定义n个对象,则有n组同样大小的空间以存放对象中的数据成员。但对于成员函数来说,函数的代码段在内存中只有一份。也就是说,同一个类中的不同对象在调用自己的成员函数时,其实它们调用的是同一段函数代码。那么,当一个对象调用自己的成员函数时,如何保证成员函数中对

2017-06-29 17:04:00 705

原创 Code(一)排序算

#includeusing namespace std;void swap(int *a, int *b){ int temp; temp = *a; *a = *b; *b = temp;}void sort_select(int *vec, int len) //选择排序 { if (len <= 1) return; for (int i = 0; i < le

2017-06-29 14:35:07 202

转载 C++ STL系列(三)Algorithm

介绍Algorithm,主要看树的遍历,sort算法的自定义

2017-06-29 11:07:51 235

转载 C++ STL系列(二)Iterator

介绍Iterator

2017-06-29 11:05:43 256

转载 C++ STL系列(一)简介

介绍STL概况

2017-06-29 11:02:59 377

转载 常量指针和指针常量的区别详解

下面通过一个例子来解析常量指针和指针常量,我们先总结一下常量指针和指针常量的区别首先一定要明白哪种定义方式是常量指针,哪种是指针常量,这里可以记住三句话加深记忆:* (指针)和 const(常量) 谁在前先读谁 ;*象征着地址,const象征着内容;谁在前面谁就不允许改变。好吧,让我们来看这个例子:[cpp] view plain copy

2017-06-29 10:58:14 374

转载 C/C++程序的内存分配

C/C++程序到内存分配一个由C/C++编译到程序占用的内存分为以下几个部分:1、栈区(stack)——由编译器自动分配释放,在不需要的时候自动清除。用于存放函数的参数、局部变量等。操作方式类似数据结构中的栈(后进先出)。2、堆区(heap)——一般由程序员分配释放,若程序员分配后不释放,程序结束后可能由OS回收。不同于数据结构中的堆,分配方式有些类似链表。3、全局区(静态区)——

2017-06-28 23:28:10 314

转载 多线程程序中操作的原子性

原子操作就是不可再分的操作。在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头。本文主要讨论了三个问题:1. 多线程程序中对变量的读写操作是否是原子的?2. 多线程程序中对Bit field(位域)的读写操作是否是线程安全的?3. 程序员该如何使用原子操作?

2017-06-28 21:29:02 249

转载 Shell 文件包含

Shell 文件包含和其他语言一样,Shell也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。Shell 文件包含的语法格式如下:. filename  #注意点号(.)和文件名中间有一空格 或 source filename实例创建两个 shell脚本文件。test1.sh代码如下:#!/bin/bash

2017-06-27 22:53:56 172

转载 Shell 输入/输出重定向

Shell 输入/输出重定向大多数 UNIX系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。重定向命令列表如下:命令说明command > file将输出重定向到

2017-06-27 22:51:33 218

转载 Shell 函数

Shell 函数linux shell可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式如下:[function ] funname[()]{    action;    [returnint;]}说明:·        1、可以带function fun()定义,也可以直接fun()定义,不带任何参数。

2017-06-27 22:45:08 291

转载 Shell 流程控制

Shell 流程控制和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法):phpif(isset($_GET["q"])){    search(q);}else{    // 不做任何事情}在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else。if elseif

2017-06-27 22:38:57 154

转载 Shell test 命令

Shell test 命令Shell中的 test命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。数值测试参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真

2017-06-27 22:17:04 380

转载 Shell echo命令

Shell echo命令Shell 的 echo 指令与 PHP的 echo 指令类似,都是用于字符串的输出。命令格式:echo string您可以使用echo实现更复杂的输出格式控制。1.显示普通字符串:echo "It is a test"这里的双引号完全可以省略,以下命令与上面实例效果一致:echo Itis a test2.显示转义字符e

2017-06-27 22:13:11 248

转载 Shell 基本运算符

Shell 基本运算符Shell 和其他编程语言一样,支持多种运算符,包括:·        算数运算符·        关系运算符·        布尔运算符·        字符串运算符·        文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk和 expr,expr最常用。expr 是一款表达式计算

2017-06-27 21:37:15 1451

转载 Shell 数组

Shell 数组数组中可以存放多个值。Bash Shell只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP类似)。与大部分编程语言类似,数组元素的下标由0开始。Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:array_name=(value1... valuen)实例#!/bin/bash# author:

2017-06-27 21:29:34 163

转载 Shell 传递参数

Shell 传递参数我们可以在执行 Shell脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1为执行脚本的第一个参数,2为执行脚本的第二个参数,以此类推……实例以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:#!/bin/bash# author:菜鸟教程#url:www.runoob.com        

2017-06-27 21:20:58 166

转载 shell简单命令

现在请继续在 linux 字符界面下输入 man bash,调出 bash 的帮助页面,然后找到 “shell语法”那一部分,我们就是以这里的描述作为实现的依据。在 bash帮助的“shell 语法”一节,是这样来定义shell 语法的: 简单命令简单命令是(可选的)一系列变量赋值, 紧接着是空白字符分隔的词和重定向符号, 最后以一个控制操作符结束. 第一个词指明了要执行的命令, 它被

2017-06-27 19:30:42 501

转载 shell变量

点击打开链接Shell 变量定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:your_name="runoob.com"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:·        首个字符必须为字母(a-z,A-Z)。·        中间不能有空格,可以使用下划线(_)。·      

2017-06-27 19:27:38 193

转载 Shell 教程

点击打开链接Shell 教程Shell 是一个用 C语言编写的程序,它是用户使用 Linux的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh是第一种 Unix Shell,Windows Explorer是一个典型的图形

2017-06-27 11:25:34 283

转载 linux命令(一)

下载Wget https://mc.qcloudimg.com/static/archive/3d8addbe52be88df4f6139ec7e35b453/seafile-server_5.1.4_x86-64.tar.gz管道举例:ls -a | grep netkeeper说明:就是把前一个命令的结果当成后一个命令的输入。结合本例就是先显示所有的文件,然后再

2017-06-27 11:22:51 214

转载 ubuntu系统根目录下各个目录用途说明

1、/ 根目录--------- 所有目录挂在其下2、/boot--------- 存放Ubuntu内核和系统启动文件。系统启动时这些文件先被装载。3、/etc--------- 系统的配置文件目录。密码文件、设置网卡信息、环境变量的设置等都在此目录中,许多网络配置文件也在其中。具体 参见 。4、/lib--------- 根文件系统目录下程序和核心模块的共享库

2017-06-23 11:18:23 1039 1

原创 内联函数

内联函数是指用inline关键字修饰的函数。在类内定义的函数被默认成内联函数。注意inline 指示对编译器来说只是一个建议。编译器可以选择忽略该建议,因为把一个函数声明为inline 函数并不见得真的适合在调用点上展开。

2017-06-21 20:58:20 197

转载 Paxos算法整理

Paxos算法是莱斯利·兰伯特(英语:Leslie Lamport,LaTeX中的“La”)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。

2017-06-13 22:05:03 322

转载 DNS域名系统解析过程

转载自这篇博客1、域名系统概述域名(Domain Name),是internet上的某一台计算机或计算机组的名称,是由一串用点分隔的名字组成的。域名系统DNS(Domain NameSystem)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址。域名系统其实就是名字系统。域名系统DNS是分布式的。我们都知道,IP地址是由32位的二进制数字组成的。用户与因特网上某

2017-06-10 22:32:24 749

原创 缓存一致性

为了减少发送给服务器请求的数量,一些分布式文件系统将一些操作的结果缓存起来。客户缓存可能导致针对同一文件,不同客户端有不同版本文件或内容,这是因为一个客户端对文件的更改不会立刻引起他客户端上文件拷贝的立刻更新。这便是缓存的一致性问题。

2017-06-08 23:07:34 493

原创 杂文

为了记忆,并且不在细节上花费太多精力,本篇博客,仅对一些不清楚的基本概念简要记录,不做详细了解和分析。

2017-06-07 21:27:46 277

空空如也

空空如也

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

TA关注的人

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