io:format的格式化参数。 c 输出多个重复的字符。 1.io:format(”~2c”,”a”). 结果:aa,标识输出字母2次。 2.io:format(”~2.1c”,”a”). 结果:_a,标识输出2个字符,1个是后面跟的字母,另一个位置用空格补充,从左开始,如果是”~-2.1c”是从右侧开始。 s 打印字符串,按手册说只接受list,atom,2进制的结构。 w,p是标准输出,支持term,区别是p会对输出的数据做一些分行处理,w会显示在一行。 io_lib:format("~2.10.0B",[2]) 结果[["0","2&q Read More
posted @ 2014-03-04 14:46 风华一指流砂,苍老一段年华 Views(781) Comments(0) Diggs(0) Edit
稍微深入研究过一点 java 的同学,恐怕都知道什么叫做 “反编译” 。也就是说,随便拿一个 class 文件,找一个 jad 来,所有的 “智慧结晶” 就全都 “真相大白” 了,跟原先的 source code 相比,区别只是没有注释而已。对于开源软件开发者来说,这本是无所谓的事,但对于商业开发者而言,这简直就是噩梦。在 java 的世界,道高一尺魔高一丈(及其反复迭代)的结果是,这件事最终演变得比较诡异,以至于专门诞生了一个名叫 “代码混淆” 的产业。在我上一次关注的时候,这个领域的最新进展是可以 “混淆” 程序执行的流程,以至于正常的人类阅读反编译出来的源码,将会导致严重的脑残。不过,传 Read More
posted @ 2014-03-04 14:33 风华一指流砂,苍老一段年华 Views(313) Comments(0) Diggs(0) Edit
一、概述Layer-3 音频文件,MPEG(Moving Picture Experts Group) 在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是MPEG1 标准中的声音部分,也叫MPEG 音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3 这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG 音频编码的层次越高,编码器越复杂,压缩率也越高,MP1 和MP2 的压缩率分别为4:1 和6:1-8:1,而MP3 的压缩率则高达10:1-12:1,也就是说,一分钟CD 音质的音乐,未经压缩 Read More
posted @ 2014-03-04 14:26 风华一指流砂,苍老一段年华 Views(1215) Comments(0) Diggs(0) Edit
学习何时以及如何使用 POSIX AIO APILinux® 中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是在某些情况中,I/O 请求可能需要与其他进程产生交叠。可移植操作系统接口(POSIX)异步 I/O(AIO)应用程序接口(API)就提供了这种功能。在本文中,我们将对这个 API 概要进行介绍,并来了解一下如何使用它。AIO 简介Linux 异步 I/O 是 Linux 内核中提供的一个相当新的增强。它 Read More
posted @ 2014-03-04 14:00 风华一指流砂,苍老一段年华 Views(141) Comments(0) Diggs(0) Edit
Vmware 8.0终于出来了,不但支持Windows 8还能支持Mac OS X 10.7(Lion),真是强大无比啊!下面就介绍一下VMware 8完美安装Mac Lion正式版教程。1、下载Vmware Workstation 8.0正式版、下载Mac OS X 安装包、下载Mac引导工具、系统驱动。下载:Vmware Workstation 8.0正式版下载:下载Mac OS X 安装包下载:本文用到的其他工具打包2、设置虚拟机。3、安装Mac OS X 10.7(Lion),装驱动,因此就完美告成!创建虚拟机,这里基本下一步就可以,难度不大。选对虚拟机型号FreeBSD X 64,设 Read More
posted @ 2014-03-04 13:52 风华一指流砂,苍老一段年华 Views(1553) Comments(0) Diggs(0) Edit
(1) 指针的大小永远都是4字节,因为保存的是地址。(2)堆:它的物理内存空间是由程序申请的,并由程序负责释放。 栈:它是由操作系统分配的,内存的申请与回收都由OS管理(先进后出)。(3) char i[10]={'a','b','c','d','e','f','g','h','i'}; cout<<i<<endl; //输出 abcdefghi 如果i是数值型的话,这里输出的是相应数值变量的首地址 cout<<&a Read More
posted @ 2014-03-02 13:07 风华一指流砂,苍老一段年华 Views(126) Comments(0) Diggs(0) Edit
字节对齐有其中一条规则是这样说的:结构体的总大小为结构体最宽(最大)基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节。(所以在vs下,sizeof查看大小的时候默认对齐大小是取最宽的数据类型的大小)原因:CPU的访问粒度不仅仅是大小限制,地址上也有限制。也就是说,CPU只能访问对齐地址上的固定长度的数据。以四字节对齐为例,就是只能访问0x0-0x3,0x4-0x7,0x8-0xc这样的(闭)区间,不能跨区间访问。如果真正需要访问的数据并没有占据那个区间的全部字节范围,还有另外的信号线来指出具体操作哪几个字节,类似于掩码的作用。好像也有些架构干脆就不允许这种部分访问,强制 Read More
posted @ 2014-03-02 12:59 风华一指流砂,苍老一段年华 Views(155) Comments(0) Diggs(0) Edit
在传统服务器结构中, 常是有一个总的监听线程监听有没有新的用户连接服务器, 每当有一个新的用户进入,服务器就开启一个新的线程用户处理这个用户的数据包。这个线程只服务于这个用户 , 当用户与服务器端关闭连接以后,服务器端销毁这个线程。然而频繁地开辟与销毁线程极大地占用了系统的资源。而且在大量用户的情况下,系统为了开辟和销毁线程将浪费大量的时间和资源。线程池提供了一个解决外部大量用户与服务器有限资源的矛盾,线程池和传统的一个用户对应一个线程的处理方法不同, 它的基本思想就是在程序开始时就在内存中开辟一些线程, 线程的数目是固定的,他们独自形成一个类, 屏蔽了对外的操作, 而服务器只需要将数据包交给 Read More
posted @ 2014-03-01 17:57 风华一指流砂,苍老一段年华 Views(541) Comments(0) Diggs(0) Edit
先来一个实例:首先要说明的是,若用户没有定义,C++隐式声明一个复制构造函数和一个赋值运算符(完成按数据成员复制的动作)。二者很像,但是在下边这点上有很大的不 同:复制构造函数是只在对象实例化时才会被调用,也就是说,在复制构造函数调用期间,这个对象处于一个未决状态(直到复制构造函数被成功调用),另外复制 构造函数不返回任何值,void都没有。而赋值运算符则在一个现存的对象被赋予新的值时被调用,并且它有返回值。在下边这个例子中我们能看到并不是出现“=”就是调用赋值构造函数:#include using namespace std; class Test{ public: ... Read More
posted @ 2014-03-01 13:04 风华一指流砂,苍老一段年华 Views(336) Comments(0) Diggs(0) Edit
Erlang中节点之间建立链接我们可以使用net_adm:ping(),连接成功返回pong,失败返回pang;实践中我们不仅仅是要建立连接,比如我们需要在与其它节点建立连接或者其它节点断开的时候做一些事情,比如在节点当掉的时候记录日志,这就需要在对应的时机取得相应的信息;Erlang在net_kernel库中提供了这样的方法:net_kernel:monitor_nodes(Flag);调用这个方法来订阅节点状态变动的消息.一个节点加入的时候会向所有的订阅进程发送一个nodeup消息,一个节点断开的时候会发送nodedown消息. 看规格说明中,我们可以对订阅的消息进行定制: doc地址:. Read More
posted @ 2014-03-01 10:41 风华一指流砂,苍老一段年华 Views(280) Comments(0) Diggs(0) Edit