- 博客(22)
- 资源 (4)
- 收藏
- 关注
原创 Linux下errno的使用
平时写代码调用函数经常返回莫名其妙的错误,此时就需要使用errno来判断到底函数调用出了啥问题了,废话不多说直接上个例子,简洁明了#include #include #include int main(){ errno = 1; perror(strerror(errno)); return 0;}
2014-02-13 20:24:43
516
转载 微信的公众号和服务号
进来开始关注微信的二次开发,当然首先得了解订阅号和服务号的区别了。 那么订阅好和服务号到底有啥区别呢:1.微信公众平台服务号,顾名思义,主要是给客户提供服务的。一般银行和企业做客户服务用的比较多。主要功能和权限如下:a.可以申请自定义菜单b.服务号一个月只能群发一条信息c.服务号群发信息的时候,用户手机会像收到短信一样接收到信息,显示在用户的聊天列表当中2.微
2014-02-13 19:46:25
1661
原创 Linux Cgroup cpu子系统
cpu子系统用于控制cgroup中所有进程可以使用的cpu时间片。附加了cpu子系统的hierarchy下面建立的cgroup的目录下都有一个cpu.shares的文件,对其写入整数值可以控制该cgroup获得的时间片。例如:在两个cgroup中都将cpu.shares设定为1的任务将有相同的CPU时间,但在cgroup中将cpu.shares设定为2的任务可使用的CPU时间是在cgroup中将c
2013-09-08 18:43:39
1930
原创 Cgroup文件系统
cgroup用户空间的管理是通过cgroup文件系统实现的。比如要创建一个层级:mount -t cgroup -o cpu,cpuset,memory cpu_and_mem /cgroup/cpu_and_mem这个命令就创建一个名为cpu_and_mem的层级,这个层级上附加了cpu,cpuset,memory三个子系统,并把层级挂载到了/cgroup/cpu_and_mem
2013-09-08 16:34:08
2107
原创 Cgroups数据结构设计
我们从进程出发来剖析cgroups相关数据结构之间的关系在Linux中,管理进程的数据结构是task_struct,其中与cgroups有关的:#ifdef CONFIG_CGROUPS /* Control Group info protected by css_set_lock */ struct css_set __rcu *cgroups; /* cg_list protec
2013-09-08 15:41:41
835
原创 什么是Linux Cgroups
Cgroups是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源的机制。最初由google的工程师提出,后来被整合进Linux内核。Cgroups也是LXC为实现虚拟化所使用的资源管理手段,可以说没有Cgroups就没有LXC。Cgroups最初的目标是为资源管理提供一个统一的框架,即整合现有的cpuset等子系统,也为未来开发信的子系统
2013-09-08 14:58:36
902
原创 RPM概念
rpm介绍:RPM全称是Red Hat Package Manager(Red Hat包管理器)。几乎所有的Linux发行版本都使用这种形式的软件包管理安装、更新和卸载软件。RPM是一个开放的软件包管理系统。它工作于Red Hat Linux以及其他Linux和Unix系统,可被任何人使用。RedHat软件公司鼓励其他厂商来了解RPM并在自己的产品中使用它。RPM的发布基于GPL协议。对于
2013-08-28 21:15:45
1001
原创 shell test的使用
我们知道,在shell编程中,test关键字和 [] 中括号基本上是可以划等号的,所以一下的这些test的参数当然也可以在[]中使用。1.判断表达式:if test exp 或者 if [ exp ] 表达式exp为真if test ! exp 或者 if [ ! exp ] 表达式exp为假test exp1 -a exp2 或者 if [ exp1 -a exp2 ]
2013-07-29 21:12:09
651
原创 taskset设置进程CPU亲和性
man手册的解释:retrieve or set a process's CPU affinity。由此可知,我们可以通过taskset来设定或者获取进程的CPU亲和性。基本上,我们用的最多的选项就是-a/-c/-p了。-a : 获取给定进程pid的所有线程的cpu亲和性。-c : 设置进程的CPU亲和性-p : 获取进程的cpu亲和性基本用法如下:
2013-07-23 22:00:58
2955
转载 python lambda
python中用lambda来创建匿名函数,而用def创建的方法是有名称的,除了从表面上的方法名不一样外,python lambda还有哪些和def不一样呢?1 python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量。2 python lambda它只是一个表达式,而def则是一个语句。下面是python lamb
2013-07-17 22:30:40
487
原创 core dump
有的程序可以通过编译,但在运行时会出现segmentatin fault(即段错误)。这通常是指针错误引起的,但这不像编译错误一样可以在编译的时候定位到行,而是没有任何信息,使得调试程序变得困难。这时我们可以通过gdb来调试,但如果程序很大的话,通过gdb一步步寻找显然不合适。因此,我们可以使用core dump。要想让系统在信号中断造成的错误时产生core文件,我们需要系统中进行设置。首
2013-07-10 22:05:47
559
原创 冯诺依曼计算机
1945年,数学家冯·诺依曼在研究EDVAC机时提出了“存储程序”的概念。以此概念为基础的各类计算机通称为冯·诺依曼机。特点可归结如下:1.计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成。2.指令和数据以同等地位存放于存储器内,并可按地址寻址。3.指令和数据运用二进制数表示。4.指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置
2013-05-15 21:22:10
1553
原创 计算机组成和计算机体系结构的概念区别
计算机体系结构域计算机组成这两个概念是不同的,应该予以区分。计算机体系结构是指那些能够被程序员所见到的计算机系统的属性,即概念性的结构与功能特性。计算机系统的属性通常是指用机器语言编程的程序员所看到的传统机器的属性,包括指令集、数据类型、存储器寻址技术、I/O机理等,大都属于抽象的属性。由于计算机系统具有多级层次结构,因此,站在不同层次上编程的程序员所看到的计算机属性页是各不相同的。计算机
2013-05-15 20:48:33
7128
原创 内核源代码下的层次目录
arch:与硬件平台有关的选项,大部分指的是CPU的类型,如x86,x86_64,Xen虚拟支持等。block:与区块设备较相关的设置数据,区块数据通常指的是大量储存媒质,还包括了类似ext3等文件系统的支持是否允许等。cypto:内核所支持的加密的技术,例如md5或者是des等。Dorumentation:与内核有关的一堆帮助文档,若对内核有极大的兴趣,要瞧瞧这里。drivers
2013-04-11 21:28:19
578
原创 十进制、八进制、十六进制格式转换
在编程的过程中经常会碰到需要将数字在十进制、八进制、十六进制之间进行转换,以往都是屁颠屁颠的自己写代码实现,今天看c++的时候发现原来cout把一切都已经帮你做好了,在此为自己的无知羞涩一下。#include using namespace std;void main(){ int test = 100; cout << test << endl; //默认的十进制打印 co
2013-04-04 21:36:08
957
原创 climits中的符号常量
在编程中往往需要知道自己所在的编程环境int、long等变量支持多大的数,所以如下列除了各个变量的符号常量,当然也可通过sizeof函数来自行计算CHAR_BIT char的位数CHAR_MAX char的最大值CHAR_MIN char的最小值SCHAR_MAX signed char的最大值SCHAR_MIN signed char的最小值UCHAR_MAX uns
2013-04-04 21:08:52
595
原创 shell特殊字符总结
# 注释,行首以#开头为注释(#!是个例外); 命令分隔符,可以用来在一行中写多个命令;; 用于终止case选项. 等价于source命令作为文件名的一部分,.如果作为文件名的前缀的话,那么这个文件将成为隐藏文件。将不被ls命令列出如果作为目录名的的话,表示的是当前目录。“..”表示的是上级目录也可作为正则表达式的一部分,用于匹配任何单个字符" 部分引用。"string
2013-03-28 21:02:44
731
原创 用ssh连接电脑上的linux虚拟机
很多人在电脑上都建有虚拟机,如果每次使用虚拟机的时候都要开着虚拟机窗口会很麻烦,所以很多人会选择用ssh来连接自己电脑上的虚拟机。在这儿是记录了本人在这个过程中碰到的一些问题以及解决的方法,希望能帮到各位朋友。本人使用的是virtualbox+opensuse。ssh软件用的是xshell。刚建完虚拟机的时候我也是ssh连不上,但通过如下步骤都一一解决了存在的问题:首先我们建好虚拟机并
2013-03-28 20:28:22
2895
原创 基于对象的反向映射
反向映射一直是提高pageout效率的一个热门话题。在2.6内核中,在page结构中加入了一个链表指针,保存了所有引用了该页的映射(pte chains)。虽然这能很好的实现反向映射,但是却在映射/解映射、fork/exit时花费了太多的空间和时间。因此出现了一种新的反向映射方法——基于对象的反向映射。在2.4内核之前,内核是不提供物理内存地址到虚拟地址的映射机制的(就是我们所说的反向映射
2013-03-21 21:29:21
971
原创 shell “(())”的使用
使用方法:((表达式1,表达式2,...))特点:1.在双括号中,所有表达式可以像C语言一样,如:a++, b--等2.在双括号中,所有变量可以不加入“$”符号3.在双括号中可以进行逻辑运算,四则运算4.双括号扩展了for,while,if条件测试运算5.支持多个表达式运算,各个表达式之间用“,”分开使用实例:四则运算: #!/bin/bash
2013-03-18 21:52:22
609
转载 Linux errno汇总
0 -- Success 1 EPERM Operation not permitted 2 ENOENT No such file or directory 3 ESRCH No such process 4 EINTR Interrupted system call 5 EIO Input/
2013-03-18 21:18:32
894
原创 PHP常用函数
判断数据类型函数is_array(var) 判断变量是否为数组如果参数是数组就返回true 否则返回falseis_bool(var) 判断变量是否为布尔型如果参数是布尔型值(即true或false)就返回true,否则返回falseis_float(var) 判断变量是否为浮点数如果参数是浮点数则返回true,否则返回falseis_int(var) 判断变量是否为整型变量如果参
2013-03-11 19:02:00
515
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人