自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (5)
  • 收藏
  • 关注

原创 关于 ‘--exec’ 参数( find 命令)及介绍 ‘xargs ’命令区别

find 命令一直都是系统管理员的常用命令之一, 其参数中 “-exec” 尤其实用。而 “xargs” 命令,针对查询也有属于自己的见解。本文着重讲解的是围绕 find 命令查询为主线,使用 -exec 参数(find 命令) 或使用 xargs 命令。

2017-11-07 14:34:55 423

原创 Linux之我最常用的操作

Linux之我最常用的操作

2017-10-12 17:39:27 289

原创 Linux之我最常用的命令

Linux之我最常用的命令

2017-10-12 17:36:08 737

原创 读懂diff

diff是Unix系统的一个很重要的工具程序。它用来比较两个文本文件的差异,是代码版本管理的基石之一。你在命令行下,输入:   $ diff <变动前的文件> <变动后的文件>diff就会告诉你,这两个文件有何差异。它的显示结果不太好懂,下面我就来说明,如何读懂diff。

2017-10-12 17:01:12 254

原创 DNS原理

DNS解析原理及过程  当用户访问我们网站一个网页时,他需要经过以下步骤:  1)找到这个网页的存放服务器;  2)服务器将用户的请求信息接入;  3)服务器通过文件路径(URL)查找用户请求网页;  4)用户将该网页内容下载到自己电脑上。  我们所讲的DNS解析主要是第一个步骤,即让用户通过URL找到文件存放的服务器

2017-10-12 16:18:27 266

原创 互联网协议入门(二)

我们每天使用互联网,你是否想过,它是如何实现的?全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。下面就是我的学习笔记。因为这些协议实在太复杂、太庞大,我想整理一个简洁的框架,帮助自己从总体上把握它们。为了

2017-10-12 15:46:52 151

原创 互联网协议入门(一)

我们每天使用互联网,你是否想过,它是如何实现的?全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。下面就是我的学习笔记。因为这些协议实在太复杂、太庞大,我想整理一个简洁的框架,帮助自己从总体上把握它们。为了

2017-10-12 15:15:02 159

原创 回调函数

在理解“回调函数”之前,首先讨论下函数指针的概念。函数指针(1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它。函数是存放在内存代码区域内的,它们同样有地址,因此同样可以用指针来存取函数,把这种指向函数入口地址的指针称为函数指针。

2017-08-18 07:48:10 160

转载 嵌入式开发学习步骤

一、Linux 基础独立安装Linux操作系统Linux常用软件Linux文件系统Linux命令系列(不常用但很有用)Linux启动过程详解Linux系统的常用服务Linux命令实践设置Linux环境变量定制Linux的服务 使用vi编辑文件

2017-07-25 10:38:45 421

原创 守护进程详解

守护进程(Daemon)是一种运行在后台的一种特殊的进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。由于在Linux中,每个系统与用户进行交流的界面成为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的控制终端,当控制终端被关闭的时候,相应的进程都会自动关闭。但是守护进程却能突破这种限制,它脱离于终端并且在后台运行,并且它脱离终端的目的是为了避免进程在运行的过程中的信息在任何终端中显示并且进程也不会被任何终端所产生的终端信息所打断。它从被执行的时候开始运转

2017-07-25 10:33:30 155

转载 Linux启动过程详解

启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。

2017-07-25 10:29:19 249

原创 内存5大区

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

2017-07-20 11:22:42 264

原创 webbench源码分析之usage函数

/************** 程序使用方法 ***************/ 让我们先来看一下fprintf函数:函数原型:int fprintf(FILE *stream, const char *format, ...);函数描述:fprintf() write output to the given output stream;

2017-07-17 10:43:12 945

原创 webbench源码分析之build_request函数

/**************** 创建URL请求连接 @url:url地址 创建好的请求放在全局变量request中 ****************/ // 此函数主要目的是要把类似于http GET请求的信息全部存储到全局变量request[REQUEST_SIZE]// 中,其中换行操作使用"\r\n"。其中应用了大量的字符串操作函数。// 创建url请求连接,HTTP头,创建好的请求放在全局变量request中

2017-07-16 23:46:18 335

原创 webbench源码分析之benchcore函数

/****************************** 这里才是测试http的地方 ,benchcore函数是子进程进行压力测试的函数,被每个子进程调用 @host:地址 @port:端口 @req:http格式方法 ********************************/ //由于bench函数子进程调用了benchcore函数,而benchcore函数是测试函数,它通过使用SIGALARM信息来控制时间,//alarm函数设置了多少时间之后产生SIGAL

2017-07-16 23:44:30 290

原创 webbench源码分析之bench函数分析

/* vraci system rc error kod */ /*********************** 创建管道和子进程,对http请求进行测试 **********************/ //下面是bench函数解析,此函数开始先进行一次socket连接,确认能连接以后,才进行后续步骤;调用pipe函数初始化一个管道,//用于子进程想父进程汇总测试数据。而子进程是主进程通过fork函数复制出来的;之后每隔子进程都调用benchcore函数进行测试,//并将结果输出到管道,

2017-07-16 23:41:49 308

原创 webbench源码分析之main函数

int main(int argc, char *argv[]) { int opt = 0; // getopt_long的返回字符 int options_index = 0; // getopt_long的第五个参数,一般为0 char *tmp = NULL; if(argc == 1)//使用方法不合适 { usage(); return 2; } // 使用getopt_long函数读取命令行参数,来设置所涉及到的全局变量的值 //

2017-07-16 23:37:41 210

原创 webbench源码分析

功能:通过地址和端口建立网络连接 @host:网络地址 @clientPort:端口 Return:建立的socket连接。 如果返回-1,表示建立连接失败

2017-07-16 22:52:57 244

原创 Linux内核链表之哈希链表

因为哈希链表并不需要双向循环的技能,它一般适用于单向散列的场景。 所以,为了减少开销,并没有用struct hlist_node{}来代表哈希表头,而是重新设计struct hlist_head{}这个数据结构

2017-06-04 12:09:17 563

原创 Linux内核数据结构之链表list.h

Linux-3.5版本下的list.h注释翻译加详细分析

2017-06-03 15:11:17 355

原创 C语言inline函数

c/c++中的inline,使用在函数声明处,表示程序员请求编译器在此函数的被调用处将此函数实现插入,而不是像普通函数那样生成调用代码(申请是否有效取决于编译器)。一般地说,这样作的优点是省掉了调用函数的开销;缺点则是可能会增加代所生成目标代码的尺寸

2017-06-03 14:59:29 524

转载 内核数据结构移植

主要移植了内核中的 list,rbtree。使得这2个数据结构在用户态程序中也能使用。同时用 cpputest 对移植后的代码进行了测试。(测试代码其实也是使用这2个数据结构的方法)

2017-06-02 16:09:27 338

原创 notepad++查看项目源码

notepad++中函数跳转,需要安装插件 SourceCookifier. 在notepad++的菜单 plugins/plugin manager 安装 SourceCookifier

2017-05-29 22:24:25 2988 1

原创 Notepad++ 配置 MinGW(gcc)编译环境配置 以及问题解决

配置环境变量,在path后添加变量 D:\Program Files\MinGW\bin;D:\Program Files\MinGW\include;D:\Program Files\MinGW\lib具体路径根据自己的电脑MinGW所在位置不同而改变出现 warning: no newline at end of file

2017-05-20 19:18:37 463

原创 开发板mount挂载到红帽6.5方法及问题解决

mount -t nfs -o nolock 192.168.1.20:/arm /mntsvc: failed to register lockdv1 RPC service (errno 111).lockd_up: makesock failed, error=-111

2017-05-15 22:37:15 371

原创 MMU

MMU : 内存管理单元(硬件),是一个协处理器,功能: 1:将虚拟地址转换成实际的物理地址 2:对物理内存设置访问权限

2017-05-15 22:15:08 315

原创 无名管道

管道是linux中重要的通信方式,这里所说的是无名管道,无名管道具有以下特点: 他只能用于具有亲缘关系的进程之间(也就是父子进程或者是兄弟进程之间) 是一种半双工的通信模式,具有固定的读端pipefd[0]和写端pipefd[1] 可以把管道看成是一种普通的文件,对他的读写可以使用普通的read()和write()函数,但是又不是普通的文件,不属于其他任何文件系统,并且只存在于内核的内存空间中管道是基于文件描述符的通信方式,当一个管道建立时,他会创建两个文件描述符pipefd[

2017-03-21 23:09:10 244

原创 有名管道

有名管道是独立于进程存在的。有名管道可以看成是有文件名标识的一个管道,不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。FIFO一旦创建,open、write、read、close操作跟普通文件一样(不支持诸如lseek()等文件定位操作)。

2017-03-21 22:26:51 687

原创 C++虚基类与虚继承

多继承(Multiple Inheritance)是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突就是不可回避的一个。

2017-03-20 12:41:37 248

原创 深拷贝与浅拷贝

浅拷贝 所谓浅拷贝,指的是在对象复制时,只对对象中的数据成员进行简单的赋值,默认拷贝构造函数执行的也是浅拷贝class Rect{public:Rect(){ count++; cout//拷贝构造函数/*Rect(const Rect &r)*{* width = r.width;* height = r.h

2017-03-20 11:41:56 246

原创 C++重载、覆盖与隐藏

重载前提:(1)同一作用域(2)函数名相同要求:不同形参表注:返回类型和参数的缺省值不参与重载识别。函数前缀的访问控制(public/protected/private)不影响重载。在不同的名字空间声明的函数不是重载。除 main 函数之外的任何函数都可以重载。重载的几种情况:(1)形参是引用,非引用时void

2017-03-20 11:18:22 280

原创 C++析构函数

创建对象时系统会自动调用构造函数进行初始化工作,同样,销毁对象时系统也会自动调用一个函数来进行清理工作(例如回收创建对象时消耗的各种资源),这个函数被称为析构函数。

2017-03-20 11:16:11 218

原创 C++构造函数

类在创建对象时,构造函数为对象分配内存空间并初始化

2017-03-20 11:14:43 589

原创 container_of与offsetof详解

Linxu内核中宏container_of的作用是根据结构体成员的一个指针地址来获取整个结构体的地址

2017-03-20 10:58:18 332

原创 指针复杂类型

让你不再害怕指针

2017-03-20 10:03:12 246

转载 socket通信原理与实现

socket的基本操作    ①socket()函数    ②bind()函数    ③listen()、connect()函数    ④accept()函数    ⑤read()、write()函数等    ⑥close()函数1、socket()函数SOCKET(2)                  Linux Programm

2017-03-20 01:16:48 407 2

原创 TCP通信之三次握手四次挥手

TCP是面向连接的,双方发送数据之前,必须先在双方之间建立一条连接,这个连接是通过三次握手进行初始化的,完成了三次握手,客户端和服务器端就可以开始传送数据,当数据传送完毕,通过四次分手断开TCP连接。

2017-03-19 23:40:16 198

计算机常用英语单词(带音标)

计算机常用英语单词(带音标)

2017-05-17

C语言编写坦克大战源代码

C语言编写坦克大战源代码

2017-05-17

C语言压力笔试题

C/C++压力笔试题

2017-05-17

fuse-ext2-0.0.7

fuse-ext2-0.0.7,Linux下挂载ntfs文件系统

2017-05-17

Linux内核完全注释(内核版本0.11)及源码

Linux内核完全注释(内核版本0.11)及源码

2017-05-17

空空如也

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

TA关注的人

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