自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 linux 文件锁flock,lockf,fcntl

1、flock,lockf,fcntl之间区别  先上结论:flock是文件锁,锁的粒度是整个文件,就是说如果一个进程对一个文件加了LOCK_EX类型的锁,别的进程是不能对这个文件加锁的。  lockf是对fcntl的封装,这两个东西在内核上的实现是一样的。它们的粒度是字节,不同的进程可以对相同的文件不同字节加LOCK_EX类型的锁。2、linux文件系统  在详解锁的实...

2018-11-17 15:24:00 644

转载 详解nohup和& 区别

nohup一、【解释】不挂断地运行命令。no hangup的缩写,意即“不挂断”。一般理解&记住一个命令最简单的方法是记住它是什么缩写,就自然理解了这个命令。nohup运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号;二、【语法】nohup Command [ Arg ... ] [ & ]nohup 命令...

2018-08-28 15:07:00 165

转载 Python字符编码详解

本文简单介绍了各种常用的字符编码的特点,并介绍了在python2.x中如何与编码问题作战 :)请注意本文关于Python的内容仅适用于2.x,3.x中str和unicode有翻天覆地的变化,请查阅其他相关文档。尊重作者的劳动,转载请注明作者及原文地址 >.<  转自:https://www.cnblogs.com/huxi/archive/2010/12/...

2018-08-13 09:51:00 121

转载 Python 中的type和object详解

1、python中的类 Python2.x 中的类分为两种,一种是所有继承自object的新式类,另外一种是经典类classobj,  新式类的写法:  class A(object):    pass   经典类的写法:  class A():    pass   这两种类在除了在多继承的时候,继承查找顺序算法不一致外,并没有其他区别,这...

2018-07-24 17:36:00 171

转载 状态模式

1、状态模式定义  状态对象:在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。  状态模式(State Pattern) :类的行为是基于它的状态改变的。状态模式...

2018-07-21 20:25:00 75

转载 Python 迭代器

1、迭代器定义  迭代器只不过是一个实现了迭代器协议的容器对象。它基于两个方法:  next    返回容器的下一个项目  __iter__  返回迭代器本身2、内建函数iter()  迭代器可以通过内置函数iter()和一个序列创建:it = iter('abc')print it.next()print it.next()print it....

2018-07-14 16:56:00 86

转载 Python 列表推导

1、列表推导表达式[表达式 for 变量 in 列表][表达式 for 变量 in 列表 if 条件表达式]2、列表推导简单例子  1) 简单推导# lc means list_comprehensionslc = [i for i in range(10)]print 'result: %s' % lclc_add = [i + i fo...

2018-07-14 16:15:00 109

转载 Python 垃圾回收机制

一、Python垃圾回收机制Python中的垃圾回收是以引用计数为主,分代收集为辅。在Python中,如果一个对象的引用数为0,Python虚拟机就会回收这个对象的内存。class A: def __init__(self): self.t = None print 'new obj, id is %s' %str(hex...

2018-06-06 18:38:00 112

转载 C++异常实现机制

1、C函数的调用和返回  要理解C++异常机制实现之前,首先要了解一个函数的调用和返回机制,这里面就要涉及到ESP和EBP寄存器。我们先看一下函数调用和返回的流程。下面是按调用约定__stdcall 调用函数test(int p1,int p2)的汇编代码假设执行函数前堆栈指针ESP为NNpush p2 ;参数2入栈, ESP -= 4h , ESP = N...

2018-06-01 14:32:00 358

转载 Python __dict__属性详解

我们都知道Python一切皆对象,那么Python究竟是怎么管理对象的呢?1、无处不在的__dict__  首先看一下类的__dict__属性和类对象的__dict__属性# -*- coding: utf-8 -*-class A(object): """ Class A. """ a = 0 b = 1...

2018-05-29 00:04:00 324

转载 linux 挂载共享文件夹

1、背景通常会有这样的场景,开发人员在Windows编写代码,然后放在linux环境编译,我们通过mount命令就可以实现将代码直接挂到linux环境上去,使Windows上的共享文件夹就像linux环境中的一个文件夹。2、在Windows上共享文件夹  1. 选择要共享的文件夹 --> 右键-->属性->共享选项->共享: 选择Everyone,这样...

2018-05-26 18:33:00 742

转载 建议性锁和强制性锁

1、锁的应用场景假设有一个文件a,它有1000个字节,一个进程A打开a文件并使用lseek定位到文件到末尾的位置,准备写50个字节,同时进程B也打开这个a文件进行和进程A同样的操作,那么文件最后的内容并不是1000+50+50个字节,而是1050,两个进程后写入的内容将会覆盖前面写的内容,那么如何解决这种问题呢?这种情况下,文件锁应运而生。2、建议性锁建议性锁flock,...

2018-05-03 22:17:00 432

转载 装饰器模式

1、引言最近在看Openstack源码,发现里面大量使用了装饰器模式,以前也接触过装饰器模式,只了解它是在原有对象上加了一层封装,保持原有逻辑不变。今天仔细想想,完全可以再重新写一个类,把原来的对象包进去,将原来用到该对象的地方替换成现有对象即可,那为什么还要弄出来一个装饰器模式?2、装饰器模式允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰者可以在所委托被装饰者的...

2018-04-21 16:03:00 92

转载 代理模式

1.引言这两天一直在看Openstack的ceilometer模块,它的官方文档里有这么一段话:Polling:The Telemetry service is intended to store a complex picture of the infrastructure. This goal requires additional information than wh...

2018-04-18 17:58:00 82

转载 Windows下C/C++内存泄露检测机制

1、概述在Windows下微软给我们提供了一个十分强大的C/C++运行时库,这个运行时库中包含了很多有用的功能。而众多强大功能之一就是内存泄露的检测。C/C++提供了强大的内存管理功能,不过随之而来的却是内存管理的复杂问题。内存泄露、踩内存等问题随之大量产生。要完全杜绝这些问题是比较困难,不过一个高效有用的工具却可以将内存泄露的问题第一时间发现并处理掉。VS的C/C++运行时...

2018-04-12 21:53:00 235

转载 UTF-8 有BOM 和 无BOM的区别

BOM: Byte Order Mark,即字节序标志在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE"。这样如果接收者收到FEFF,就表明这个字节流是Big-En...

2018-04-11 12:50:00 2255

转载 Linux进程间通信-共享内存

继前三篇分析了进程间通信机制管道,命名管道(FIFO),消息队列后,本文将介绍最后一种进程间通信机制,也是进程间通信机制效率最高的一种-共享内存1、共享内存考虑前三种进程间通信机制,一个客户-服务器文件复制程序将设计到一下步骤:(1)服务器从输入文件读取。该文件的数据由内核读入自己的内存空间,然后从内核复制到服务器进程。(2)服务器往管道、FIFO和消息队列以一条消息的形...

2018-04-01 22:50:00 97

转载 Linux进程间通信-消息队列(mqueue)

前面两篇文章分解介绍了匿名管道和命名管道方式的进程间通信,本文将介绍Linux消息队列(posix)的通信机制和特点。1、消息队列消息队列的实现分为两种,一种为System V的消息队列,一种是Posix消息队列;这篇文章将主要围绕Posix消息队列介绍;消息队列可以认为是一个消息链表,某个进程往一个消息队列中写入消息之前,不需要另外某个进程在该队列上等待消息的达到,这一点与...

2018-03-25 17:25:00 5607

转载 Linux进程间通信-命名管道

继上篇文章分析了进程间通信管道的机制和特性,本文将从命名管道(FIFO)介绍进程间通信。1、命名管道(FIFO)管道应用的一个重大限制是它没有名字,只适合具有亲缘性质的进程之间通信。命名管道克服了这种限制,FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过...

2018-03-20 21:41:00 114

转载 Linux进程间通信-管道

Linux进程通信系列文章将详细介绍各种通信方式的机制和区别1.进程间通信 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程A把数据从用户空间拷到内核缓冲区,进程B再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信。 2、进程间通信方式一、进程间通信-管道...

2018-03-18 23:54:00 87

转载 cookie窃取和session劫持

一、cookie的基本特性http request浏览器向服务器发起的每个请求都会带上cookie:Host: www.example.orgCookie: foo=value1;bar=value2Accept: */*http response服务器给浏览器的返回可以设置cookie:HTTP/1.1 200 OKContent-type: tex...

2018-03-17 14:29:00 227

转载 rtmp发布录制视频

本文描述了rtmp发布本地视频的流程一、简要介绍RTMP协议规定,播放一个流媒体有两个前提步骤:第一步,建立一个网络连接(NetConnection);第二步,建立一个网络流(NetStream)。其中,网络连接代表服务器端应用程序和客户端之间基础的连通关系。网络流代表了发送多媒体数据的通道。服务器和客户端之间只能建立一个网络连接,但是基于该连接可以创建很多网络流。发布一个视...

2018-03-17 14:23:00 570

转载 RTMP消息详细介绍

本文继上篇简单分析了RTMP协议如何进行通信进一步详细分析RTMP的消息都有哪些,以及这些消息有什么作用。一、RMTP消息由上一篇文章可知RTMP 消息有分成两个部分,一个是头部,一个是有效负载。服务器和客户端通过网络发送 RTMP 消息相互进行通讯。消息可以包括音频,视频,数据,甚至其它任何数据。二、消息头消息类型(Message Type):字段占用 1 字节来表示消...

2018-03-17 14:06:00 486

转载 RTMP规范协议

本文参照rtmp协议英文版,进行简单的协议分析1、什么是RTMP关于 Adobe 的实时消息协议(Real Time Messaging Protocol,RTMP),是一种多媒体的复用和分组的应用层协议,通过某种可靠的传输协议(例如 TCP)传输数据流(例如音频,视频和交互数据)。2、字节序、对齐和时间戳字节序:所有整数字段的表示都使用网络字节序,零字节在最前面显...

2018-03-15 23:11:00 66

转载 以操作系统的角度述说线程与进程

引言面试官经常会问到线程与进程的区别,大多数人的回答都仅限于课本上的那几句定义,比如:1、定义方面:进程是程序在某个数据集合上的一次运行活动;线程是进程中的一个执行路径。2、角色方面:在支持线程机制的系统中,进程是系统资源分配的单位,线程是系统调度的单位。3、资源共享方面:进程之间不能共享资源,而线程共享所在进程的地址空间和其它资源。同时线程还有自己的栈、程序计数...

2018-03-11 13:13:00 69

转载 C++ 编译器的函数名修饰规则

函数名字修饰(Decorated Name)方式函数的名字修饰(Decorated Name)就是编译器在编译期间创建的一个字符串,用来指明函数的定义或原型。LINK程序或其他工具有时需要指定函数的名字修饰来定位函数的正确位置。多数情况下程序员并不需要知道函数的名字修饰,LINK程序或其他工具会自动区分他们。当然,在某些情况下需要指定函数的名字修饰,例如在C++程序中,为了让LI...

2018-03-08 22:58:00 362

转载 内存对齐

一、什么是字节对齐,为什么要字节对齐?现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开...

2018-03-08 22:50:00 49

转载 C和C++运行库

一、Windows下动态库1. 静态函数库这类库的名字一般是libxxx.lib;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。2. 动态函数库这类库的名字一...

2018-03-08 22:50:00 138

空空如也

空空如也

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

TA关注的人

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