自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员的自我修养

积跬步 积小流

  • 博客(8)
  • 资源 (1)
  • 收藏
  • 关注

原创 01Redis入门指南笔记(简介、安装、配置)

一:简介        Redis是一个开源的高性能key-value数据库。Redis是RemoteDIctionary Server(远程字典服务器)的缩写,它以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容。Redis字典中的value支持的数据类型有:字符串,散列,列表,集合,有序集合。        Redis数据库中的所有数据都存储在内存中,内存的读写速度远快于

2015-11-30 17:51:03 1353 1

原创 Libev源码分析08:Libev中的内存扩容方法

在Libev中,如果某种结构的数组需要扩容,它使用array_needsize宏进行处理,比如:array_needsize (int, fdchanges, fdchangemax, fdchangecnt, EMPTY2);         这就表示要将整型(int)数组fdchanges,由原来的fdchangemax个元素扩容为fdchangecnt,新扩容的内存空间使用EMPTR

2015-11-15 09:51:39 973

转载 Error While Loading Shared Libraries, Cannot Open Shared Object File

In the “I wish the Internet had anactual correct answer” category comes a question from a Windows colleaguetrying to build software on Linux. He asks “I’m trying to do some web performancetesting and

2015-11-12 22:20:11 1207

原创 Libev源码分析08:Libev中的信号监视器

Libev中的信号监视器,用于监控信号的发生,因信号是异步的,所以Libev的处理方式是尽量的将异步信号同步化。异步信号的同步化方法主要有:signalfd、eventfd、pipe、sigwaitinfo等。这里Libev采用的是前三种方法,最终都是将对异步信号的处理,转化成对文件描述符的处理,也就是将ev_signal转化为处理ev_io。 一:数据结构1:ev_signalt

2015-11-08 09:32:12 2385

原创 Libev源码分析07:Linux下的eventfd简介

#include int eventfd(unsigned int initval, int flags);        eventfd创建一个eventfd对象,该对象可用于用户空间的程序实现事件等待、通知机制,也可用于由内核向用户空间的应用进行事件的通知。eventfd对象在内核中包含了一个计数器,该计数器是64位的无符号整数(uint64_t),该计数器由eventfd函数的in

2015-11-06 22:44:21 1151

原创 Libev源码分析06:异步信号同步化--sigwait、sigwaitinfo、sigtimedwait和signalfd

一:信号简述         信号是典型的异步事件。内核在某个信号出现时有三种处理方式:a:忽略信号,除了SIGKILL和SIGSTOP信号不能忽略外,其他大部分信号都可以被忽略;b:捕捉信号,也就是在信号发生时调用一个用户函数,注意不能捕捉SIGKILL和SIGSTOP;c:执行系统默认动作,注意大多数信号的系统默认动作是终止进程。         调用execve执行一个新

2015-11-06 21:37:33 7167

原创 Nova中的Hook机制

Nova的代码中支持Hook机制,也就是在某些函数的前后,可以加入自己的代码逻辑。Hook代码可以完全独立于Nova开发,本质上使用setuptools的entry points机制。K版本的OpenStack  Nova中支持Hook的流程有:         nova.compute .api.API:create         nova.compute.manager.Comput

2015-11-04 13:11:16 1290

原创 Python深入:stevedore简介

stevedore是用来实现动态加载代码的开源模块。它是在OpenStack中用来加载插件的公共模块。可以独立于OpenStack而安装使用:https://pypi.python.org/pypi/stevedore/          stevedore使用setuptools的entry points来定义并加载插件。entry point引用的是定义在模块中的对象,比如类、函数、实

2015-11-03 18:56:31 8056 2

柔性数组成员

C99中引入了柔性数组成员的概念。C99 中,结构体中的最后一个元素允许是未知大小的数组,称为柔性数组成员(flexible array member),柔性数组成员前面必须至少还有一个其他成员,而且柔性数组成员必须是结构体的最后一个成员。一个包含柔性数组成员的结构体或(递归的)包含这样结构体的联合体,不能成为一个结构体的成员或数组的元素。

2018-09-26

空空如也

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

TA关注的人

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