摘要:
【linux之fcntl】 每个文件描述符都有一个close-on-exec标志。默认情况下,这个标志最后一位被设置为 0。这个标志符的具体作用在于当开辟其他进程调用exec()族函数时,在调用exec函数之前为exec族函数释放对应的文件描述符。 fcntl(fd, F_SETFD, 1) 此句将fd的close-on-exec 标志设置为1,开启此标志。那么当子进程调用execl函数时,是不能向fd内写入的,因为在调用execl函数之前系统已经讲子进程的此文件描述符关闭了。(attention:这里是子进程!)但是如果将 fcntl(fd, F_SETFD, 1)改为fcntl(fd,..
阅读全文
posted @ 2013-04-12 08:49
Tekkaman
阅读(384)
推荐(0)
摘要:
【linux之文件系统】 1、Linux磁盘分区和目录 每次安装系统的时候我们都会进行分区,Linux下磁盘分区和目录的关系如下: 1)任何一个分区都必须挂载到某个目录上。 2)目录是逻辑上的区分。分区是物理上的区分。 3)磁盘Linux分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。 4)根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。 以下是我们可能存在的一种目录和分区关系: 2、文件类型 a)普通文件:C语言元代码、SHELL脚本、二进制的可执行文件等。分为纯文本和二进制。 b)目录文件:目录,存储文件的唯一地方。 c)链接文件...
阅读全文
posted @ 2013-04-10 19:40
Tekkaman
阅读(342)
推荐(0)
摘要:
【linux之dup&dup2】 参考:http://baodunqiao.blog.sohu.com/40220886.html 书籍:《Unix环境高级编程》- 第3章 - 12节
阅读全文
posted @ 2013-04-10 17:35
Tekkaman
阅读(204)
推荐(0)
摘要:
【linux之inode】 一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。文件数据都储存在"块"中,那么很显然,我们还必须找到
阅读全文
posted @ 2013-04-10 16:07
Tekkaman
阅读(217)
推荐(0)
摘要:
【javascript之this】 1、如果作为Method使用,this指向调用它的对象。 2、如果作为Function使用,非严格模式下this指向全局变量,严格模式下为undefined。 3、如果作为Function调用,想访问外部函数的this值,需要将this保存在一个变量里,如下例:
阅读全文
posted @ 2013-04-10 11:28
Tekkaman
阅读(181)
推荐(0)
摘要:
【javascript之property's attributes】 1、js中property有2种,Data Property、Accessor Property。 2、Data Property内容: 3、默认添加的Data Property三个属性都为TRUE。用Browser环境下,Var定义的属性,configurable为false,即无法被delete。 4、Accessor Property属性: 5、可以通过以下函数修改属性的属性。 6、通过以下函数获取属性的属性。
阅读全文
posted @ 2013-04-09 17:04
Tekkaman
阅读(403)
推荐(0)
摘要:
【javascript之属性状态控制Method】 参考:http://msdn.microsoft.com/zh-SG/library/ff806192
阅读全文
posted @ 2013-04-09 16:46
Tekkaman
阅读(154)
推荐(0)
摘要:
【javascript之Extensible】 1、Extensible决定一个对象是否能添加新属性。 2、判断某对象Extensible值: 3、把对象置为None Extensible: 4、After an object is made non-extensible, it cannot be made extensible。
阅读全文
posted @ 2013-04-09 16:33
Tekkaman
阅读(293)
推荐(0)
摘要:
【nodejs文件引用规则】 1、node优先加载核心模块,如http、net、stream等,如果用户自定义模块与node模块全名冲突,则会加载的是核心模块。 2、如果文件名以"/"、"./"、或"../"打头,则node直接去加载文件,如果没文件,则去加载dir。注意在查找文件的时候,如果失败,
阅读全文
posted @ 2013-04-09 13:06
Tekkaman
阅读(4595)
推荐(0)
摘要:
进位计数制 生活中我们常用的是10进制,但在计算机中数据都是以2进制的形式保存的。因此,熟练掌握2进制的特点和运算是编写程序并不可少的前提。 一般来说,进位计数制包含三个要素: 进位规则:十进制为逢十进一,二进制为逢二进一等。 每一个数位上数码所具有的权:十进制数码各位的权是以10为底的幂,二进制数
阅读全文
posted @ 2013-04-07 10:30
Tekkaman
阅读(2668)
推荐(0)
摘要:
【javascript之instanceof原理】 instanceof 检测一个对象A是不是另一个对象B的实例的原理是:查看对象B的prototype指向的对象是否在对象A的[[prototype]]链上。如果在,则返回true,如果不在则返回false。不过有一个特殊的情况,当对象B的prototype为null将会报错(类似于空指针异常)。 关于typeof,此关键字会返回如下值: 可以看到,对于typeof,该操作符只会返回object类型,在面向对象的设计中,这个信息不足以区分一个对象到底是哪个分类。而用instanceof,则可以判断A是否是B的子类。 参考:http:...
阅读全文
posted @ 2013-04-06 21:29
Tekkaman
阅读(419)
推荐(0)
摘要:
【javascript之__proto__&constructor】 constructor:对象构造器。 prototype:访问对象构造器的原型,只有函数才具有这个属性。 isPrototypeOf:如果对象 A 存在于 对象obj的原形链中,则 A.isPrototypeOf(obj)返回tr
阅读全文
posted @ 2013-04-06 21:00
Tekkaman
阅读(573)
推荐(0)
摘要:
【dirname&basename】dirname指令1、功能:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分)basename指令1、功能:从给定的包含绝对路径的文件名中去除左边目录部分或者同时去除某个后缀的内容(目录的部分),然后返回剩下的部分(非目录的部分)
阅读全文
posted @ 2013-04-06 10:50
Tekkaman
阅读(186)
推荐(0)
摘要:
【javascript中Object使用review】 1、对于下图,创建一个对象并赋予初始属性值,初看与OC中字典很像,bug是有区别的。 OC中Dictionary的key必须是字符串OC对象,value必须是OC对象,So如果是OC,则需要写成下面这样: 而对于JSON,key必须是strin
阅读全文
posted @ 2013-04-04 22:59
Tekkaman
阅读(270)
推荐(0)
摘要:
【http之100-continue】 1、http 100-continue用于客户端在发送POST数据给服务器前,征询服务器情况,看服务器是否处理POST的数据,如果不处理,客户端则不上传POST数据,如果处理,则POST上传数据。在现实应用中,通过在POST大数据时,才会使用100-continue协议。 2、客户端策略。 1)如果客户端有POST数据要上传,可以考虑使用100-continue协议。加入头{"Expect":"100-continue"} 2)如果没有POST数据,不能使用100-continue协议,因为这会让服务端造成误解。
阅读全文
posted @ 2013-04-03 13:52
Tekkaman
阅读(29330)
推荐(3)
摘要:
【nodejs之require单次加载】 require 不会重复加载模块,也就是说无论调用多少次 require,获得的模块都是同一个。 我们在 getmodule.js 的基础上稍作修改: //loadmodule.js var hello1 = require('./module'); hel
阅读全文
posted @ 2013-03-31 23:38
Tekkaman
阅读(2613)
推荐(0)
摘要:
【nodejs之supervisor】 如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你 在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止 Node.js 再重新运行才会奏效。这是因为 Node.js 只有在第一次引
阅读全文
posted @ 2013-03-31 23:26
Tekkaman
阅读(5564)
推荐(0)
摘要:
【Mac之DTerm】 DTerm是一个Mac下的好用的终端。相比Mac自带的Terminal,有以下强大之处: 1、随时通过Command+Shit+Enter唤起窗口,方便。 2、DTerm在唤醒时会按当前工作目录设置好路径,方便。 3、此外炫酷的外型也是DTerm的一大亮点,界面爽。...
阅读全文
posted @ 2013-03-31 19:36
Tekkaman
阅读(641)
推荐(0)
摘要:
【进程优先级&线程优先级】 线程的优先级越高那么就可以分占相对多的CPU时间片。每个进程都有相应的优先级,线程优先级决定它何时运行和占用CPU时间。最终的优先级共分32级是从0到31的数值称为 基本优先级别 。 OS调度的是线程,真正具有优先级的是线程,而进程优先级是作为一个优先级Class存在。 进程优先级: priorityclass 标志 优先级值 idle(低) I D L E _ P R I O R I T Y _ C L A S S 4 Below(低于标准) B E L O W ...
阅读全文
posted @ 2013-03-28 14:01
Tekkaman
阅读(3513)
推荐(0)
摘要:
【start&run】 使用run/r或者start命令,GDB建立子进程来运行被调试程序。run和start命令稍有不同,即run仅仅加载程序然后运行,而start会在程序的入口函数(main)设置一个临时断点,程序运行到那里就会暂停,临时断点也随即被清除。另外run和start命令后面都可以加上传递给被调试程序的参数,若不加参数则使用GDB启动时传递的参数或者使用set args命令设置的参数。[设置断点] b 12 表示在12行设置断点 :这里的断点设置在这个项目的主程序文件里面在,如果要在其他文件设置断点,需要加上其他文件名称例如 : b uploadmgr.c:upload
阅读全文
posted @ 2013-03-27 15:36
Tekkaman
阅读(456)
推荐(0)
摘要:
【shell之条件测试】 1、条件测试有2种,通常使用[]会比较方便快捷 2、文件状态测试 例: 3、逻辑操作符 例: 4、字符串测试 例: 5、数值测试 例:
阅读全文
posted @ 2013-03-25 14:44
Tekkaman
阅读(923)
推荐(0)
摘要:
【plutil检查plist语法】 plutil是从Mac OX10.2开始系统自带的一个工具,用于检测plist语法以及将plist转换成xml、binary、json用。 plutil用法如下:
阅读全文
posted @ 2013-03-25 13:56
Tekkaman
阅读(1530)
推荐(0)
摘要:
【极客公园之李彦宏讲话要点】 1、大公司效率低下、推进任务难、创新低下是全球性难题。百度有以下2个方面可以让人才脱颖而出: 1)Hackathon编程马拉松 点子实在是太多了,没有任何人能够说某个点的好或者不好。譬如,yahoo当初不认为google的搜索方法好,于是才有了google,而google当初不认为facebook有技术含量,于是才有了facebook,当初腾讯以6位数天朝币贱卖都没人要,于是有了今天的600亿刀神话。So,没有任何人能说某个创意点子是好或是坏。 李彦宏深思后,发现光口头扯各种点子是无法评判的,但是一个可用的产品,我们就可以评判它是好还是坏了。So...
阅读全文
posted @ 2013-03-24 23:08
Tekkaman
阅读(314)
推荐(0)
摘要:
【汇编伪指令】 伪指令语句是用于指示汇编程序如何汇编源程序,所以这种语句又叫命令语句。例如源程序中的伪指令语句告诉汇编程序:该源程序如何分段,有哪些逻辑段在程序段中哪些是当前段,它们分别由哪个段寄存器指向;定义了哪些数据,存储单元是如何分配的等等。伪指令语句除定义的具体数据要生成目标代码外,其他均没有对应的目标代码。伪指令语句的这些命令功能是由汇编程序在汇编源程序时,通过执行一段程序来完成的,而不是在运行目标程序时实现的。 伪指令没有指令动作,旧像高级语言的编译预处理一样,他们是指导汇编过程的,而不是参与汇编代码生成的。 伪指令没有对应的机器代码,它不像指令那样由CPU来执行,它 是由M...
阅读全文
posted @ 2013-03-24 12:26
Tekkaman
阅读(321)
推荐(0)
摘要:
【ARM处理器寻址方式】 1、寄存器寻址 2、寄存器位移寻址 2.1寄存器移位寻址 2.1寄存器移位寻址 3、寄存器间接寻址 4、 基址寻址 5、多寄存器寻址 question:LD和ST的方向是不是搞反了? 5.1 多寄存器指令解析 6 栈寻址 6.1 栈寻...
阅读全文
posted @ 2013-03-23 23:26
Tekkaman
阅读(463)
推荐(0)
摘要:
【ARM寄存器简介】 1、在任意时刻,可见的寄存器包括15个通用寄存器(R0-R14)、一个或两个状态寄存器、和PC(R15)。 2、ARM共有7种工作模式,通常来说,应用级Coder看成Usr和Sys两级就行了。 3、寄存器分类: 1)R0-R7,未备份寄存器,同一模式下共用同一物理寄存器。...
阅读全文
posted @ 2013-03-23 22:29
Tekkaman
阅读(363)
推荐(0)
摘要:
【exec详解】 参考:http://baike.baidu.com/view/3292080.htm execl:http://baike.baidu.com/view/1745411.htm 复习一下。
阅读全文
posted @ 2013-03-20 17:58
Tekkaman
阅读(272)
推荐(0)
摘要:
【x86之寄存器详解】 1、在32位x86下,CS(代码段寄存器)、SS(栈寄存器)、DS(数据寄存器)、ES(附加寄存器)依旧是16位。在实模式下(16位模式),这些寄存器表示实际的地址,在保护模式下(32位模式),这些寄存器表示LDT中的偏移。 LDTR的装载:LDTR由程序员可见的16位的选择器和程序员不可见的8字节描述符高速缓存组成。在初始化或任务切换过程中,把描述符对应任务LDT的选择器装入LDTR可见部分,然后从GDT中取出LDT描述符,填充在LDTR不可见的高速缓存中。 2、其它寄存器 3、累加器 4、指示器 4、标志寄存器EFLAGS
阅读全文
posted @ 2013-03-19 23:46
Tekkaman
阅读(2208)
推荐(0)
摘要:
【x86之描述符表寄存器】 1、x86有4个描述符表寄存器 1)全局描述符表寄存器(GDTR):32(基址) + 16(边界) 位 2)中断描述符表寄存器(IDTR):32(基址) + 16(边界) 位 3)局部描述符表寄存器(LDTR):16(选择器) + 64 (16(属性)+32(基址)+16(边界))位 4)任务寄存器(TR):16(选择器) + 64 (16(属性)+32(基址)+16(边界))位 注:上图LDT、TR寄存器字段分配错误。对于每一个段,边界字段是20bit,1MB。 2、GDT和IDT 3、LDT和TSS
阅读全文
posted @ 2013-03-19 23:05
Tekkaman
阅读(473)
推荐(0)
摘要:
【x86之段描述符】 1、在保护模式下,把有关一个段的信息,即段基址、限长、类型、访问权限及其它属性信息放在一个8字节长的数据结构中,这种数据结构称为段描述符,简称描述符。 2、为了查找和识别,把系统中的描述符按线性表的形式来组织,即构成描述符表。描述符表由操作系统建议,并由操作系统维护。有三种类型的描述符表: 1)全局描述符表(Global Descriptor Table, GDT):GDT最大64KB,每个描述符8字节,故最多涵64kb/8=8192个描述符。 2)局部描述符表(Local Descriptor Table, LDT):LDT同GDT。 3)中断描述符表(Inter...
阅读全文
posted @ 2013-03-19 22:54
Tekkaman
阅读(573)
推荐(0)
摘要:
【NodeJS】 1、NodeJS入门教程:http://www.nodebeginner.org/index-zh-cn.html 模块的引入与导出 url的模块 2、NodeJS搭建静态服务器:http://cnodejs.org/topic/4f16442ccae1f4aa27001071 3
阅读全文
posted @ 2013-03-19 17:25
Tekkaman
阅读(680)
推荐(0)
摘要:
【HTTP之Range】 1、什么是Range? 当用户在听一首歌的时候,如果听到一半(网络下载了一半),网络断掉了,用户需要继续听的时候,文件服务器不支持断点的话,则用户需要重新下载这个文件。而Range支持的话,客户端应该记录了之前已经读取的文件范围,网络恢复之后,则向服务器发送读取剩余Range的请求,服务端只需要发送客户端请求的那部分内容,而不用整个文件发送回客户端,以此节省网络带宽。 2、HTTP1.1规范的Range是怎样一个约定呢? 如果Server支持Range,首先就要告诉客户端,咱支持Range,之后客户端才可能发起带Range的请求。这里套用唐僧的一句话,你不说我怎么..
阅读全文
posted @ 2013-03-19 17:17
Tekkaman
阅读(17812)
推荐(3)
摘要:
【Know what functions C++ silently writes and calls】 1、如果自己没有声明,编译器就会为类生成一个copy构造函数、 一个copy assignment操作符函数和一个析构函数、default构造函数。所有这些函数是public且是inline。 2、例: 3、惟有这些函数被需要,他们才会被创建出来。 4、copy构造函数、copy assignment操作符函数只是简单地将来源对象每一个成员变量拷贝到目标对象。 5、当类中包含引用变量、常量时,编译器拒绝生成copy构造函数、copy assignment函数,如要需要,需自己手工实现。 ..
阅读全文
posted @ 2013-03-19 12:49
Tekkaman
阅读(168)
推荐(0)
摘要:
【C的一些特性】 1、声明的优先级规则 1)声明中被括号括起来的那部分。 2)后缀操作符: a. 括号()表示这是一个函数 b. 方括号[]表示这是一个数组 3)前缀操作符:星号*表示“指向……的指针” 例: 1)定义一个函数,函数的返回值是一个函数指针,如:int (*func())(); 2)定义一个函数,函数的返回值是一个指向数组的指针,如:int (*func())[]; 3)定义一个数组,数组里的值是函数指针,如:int(*foo[])(); 4)char * const * (*next)(): next是一个指针,它指向一个函数,该函数返回另一个...
阅读全文
posted @ 2013-03-18 22:28
Tekkaman
阅读(363)
推荐(0)
摘要:
【从字符串流中随机选择一个字符串】 解题的核心是在幸存的字符串中挑选,并在过程中不断更新。 你打开文件并保存第一个字符串,此时有了一个备选字符串,并有100%的可能性选中它。保存这个字符串,继续读入下一个字符串,这样就有了2个备选字符串,选中每个的可能性都是50%。选中其中之一并保存,然后丢弃另一个。再读入下一个字符串,按照新字符串的33%原先幸存字符串67%的概率,在两者之间选择一个,然后保存新选中的字符串。【扩展】 如何从字符串流中随机选取1000个字符串。 对于数据流中的前1000个关键字,显然都要放到数组中。 对于数据流中的的第n(n>1000)个关键字,我们知道这个关键字被..
阅读全文
posted @ 2013-03-18 21:43
Tekkaman
阅读(2703)
推荐(1)
摘要:
【员工为何辞职】 员工的离职原因林林总总,只有两点最真实: 1、钱,没给到位; 2、心,委屈了。 这些归根到底就一条:干得不爽。 员工临走还费尽心思找靠谱的理由,都是扯淡。 另外,面试的时候,说“我就是来看看是否有更好机会的”会比说“我在现在公司有多不爽”会好的多。说前者,展现出你更美好的一面,让人
阅读全文
posted @ 2013-03-12 20:23
Tekkaman
阅读(255)
推荐(0)
摘要:
【iOS之Unit-Testing】 Unit-testing lets you specify behavior that your code must exhibit to ensure that its functionality remains unchanged as you modify it to, for example, make performance improvements or fix bugs. Aunitof code is the smallest testable component of your code—for example, a method i..
阅读全文
posted @ 2013-03-11 16:07
Tekkaman
阅读(780)
推荐(0)
摘要:
【C++之auto_ptr】 std::auto_ptrstd::auto_ptr 属于 STL,当然在 namespace std 中,包含头文件 #include<memory> 便可以使用。std::auto_ptr 能够方便的管理单个堆内存对象。我们从代码开始分析:void TestAutoPtr() {std::auto_ptr<Simple> my_memory(new Simple(1)); // 创建对象,输出:Simple:1if (my_memory.get()) { // 判断智能指针是否为空my_memory->PrintSomething
阅读全文
posted @ 2013-03-09 14:12
Tekkaman
阅读(8387)
推荐(3)
摘要:
【Mac之理解Call&Ret】 1、对于下述代码: 产生的汇编指令是: 2、由上例可以总结出 1)函数返回值使用eax。 3、调用约定 4、调用实例展示 解析如下:
阅读全文
posted @ 2013-03-09 11:25
Tekkaman
阅读(298)
推荐(0)
摘要:
【Mac- i386 Operands and Addressing Modes】 The i386 architecture uses four kinds of instruction operands:Register:Register operands specify that the value stored in the named register is to be used by the operator.Immediate:Immediate operands are constant values specified in assembler code.Direct Me.
阅读全文
posted @ 2013-03-08 22:23
Tekkaman
阅读(295)
推荐(0)