摘要: 只在KSH上面测试过,APUE 里面介绍过Bsh对于job control支持得不太好,因此这个程序只对对ksh和csh是有效滴。原来实现了一个利用标准输入输出来判断的,如果程序重定向可能会有问题。这次索性利用terminal文件描述符。实现原理:判断当前session的terminal对应的process group同当前进程的process group是否相等。相等则表明当前进程属于foreground process group,正在前端运行,否则表示后台执行。#include "stdio.h"#include <sys/types.h>#include 阅读全文
posted @ 2012-04-05 22:27 dongliqian 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 构成程序逻辑的一个必不可少的部分就是if-else,在处理器中就体现为跳转指令。 在执行指令的时候,处理器流水线中的第一个步骤通常就是IF(Instruction Fetch)。针对非跳转指令,IF比较简单,可以直接获取下一条指令。而条件跳转指令由于其特殊性,无法直接获取其下一条指令。如果等到处理器确认出下一条指令的时候,则流水线的功能将会大打折扣,造成性能上的损失。因此,一种跳转预测(branch prediction, 也有翻译为分支预测的)的技术就出现了。目前知道的处理器中常用的分支预测技术有三种:1。 通过branch history table。针对每条跳转指令,brachhisto 阅读全文
posted @ 2012-04-05 22:25 dongliqian 阅读(2519) 评论(0) 推荐(0) 编辑
摘要: 最近在做一个图像处理的app应用,应用中有很多图像资源。为了方便,一开始读取图像资源的时候都是直接使用了[UIImage imageNamed:@""]方法,这个方法非常方便,一句话就可以从bundle中读取图片。初步测试,功能一切正常。后来发现多次操作之后,应用经常发生内存警告从而导致自动退出的问题。定位之后发现是由于[UIImage imageNamed: @""]分配的图像都没有释放引起的。而之前从官方的reference中得到的信息应该是[UIImage imageNamed:@""]分配的图像系统会放到cache里面。而关于 阅读全文
posted @ 2012-04-05 22:23 dongliqian 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 偶尔在一本书上看到的,实现动画的算法,感觉挺靠谱。float QuadraticEaseInOut(float t, float start, float end){float middle = (start + end) / 2; t = 2 * t;if (t <= 1) return LinearTween(t * t, start, middle); t -= 1;return LinearTween(t * t, middle, end); } 阅读全文
posted @ 2012-04-05 22:22 dongliqian 阅读(780) 评论(0) 推荐(0) 编辑