摘要: 如果不考虑可移植性:在32位平台上更应该使用unsigned int,因为它:1)和unsigned long 一样的大小,32位可以表示到42.9亿。2) 比unsigned long更常用3) 和std::size_t是一样的类型如果是64位平台的话:1) unsinged int仍是32位,而unsigned long就是64位了。2) 更应该使用unsigned long因为处理器对64位具有更快的处理速度。就目前而言,64位平台还不够成熟,所以向64位平台的移植基本不做考虑。但是如果你坚持要考虑可移植性(注意是硬件32位平台向64位移植,而非软件):1) 如果对速度敏感:使用unsi 阅读全文
posted @ 2013-04-29 11:32 tobeprogramer 阅读(1857) 评论(0) 推荐(0)
摘要: diff和patch是一对工具,在数学上来说,diff是对两个集合的差运算,patch是对两个集合的和运算。 diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的patch文件,即补丁文件。 patch能将diff文件运用于 原来的两个集合之一,从而得到另一个集合。举个例子来说文件A和文件B,经过diff之后生成了补丁文件C,那么着个过程相当于 A -B = C ,那么patch的过程就是B+C = A 或A-C =B。 因此我们只要能得到A, B, C三个文件中的任何两个,就能用diff和patch这对工具生成另外一个文件。这就是diff和patch的妙处 阅读全文
posted @ 2013-04-28 16:37 tobeprogramer 阅读(10316) 评论(1) 推荐(1)
摘要: 线程有自己的寄存器,运行时堆栈或许还会有私有内存。 gdb提供了以下供调试多线程的进程的功能: * 自动通告新线程。 * \ "thread THREADNO\ ",一个用来在线程之间切换的命令。 * \ "info threads\ ",一个用来查询现存线程的命令。 * \ "thread apply [THREADNO] [ALL] ARGS\ ",一个用来向线程提供命令的命令。 * 线程有关的断点设置。 注意:这些特性不是在所有gdb版本都能使用,归根结底要看操作系统是否支持。 如果你的gdb不支持这些命令,会显示出错信息: ( 阅读全文
posted @ 2013-04-28 10:18 tobeprogramer 阅读(355) 评论(0) 推荐(0)
摘要: #ctrl+z:挂起,程序放到后台,程序没有结束。挂起(kill -s SIGSTOP pid) 可用(kill -s SIGCONT pid)继续#jobs:查看被挂起的程序工作号恢复进程执行时,有两种选择:fg命令将挂起的作业放回到前台执行;用bg命令将挂起的作业放到后台执行格式:fg 工作号;bg 工作号进程:正在执行的一个程序程序:是一种写好的代码或脚本&:后台执行,不占用终端如:xeyes &ps命令进程查看命令ps命令:process status-e 显示所有进程-f 全格式-h 不显示标题-l 长格式-w 宽输出a 显示终端上的所有进程,包括其他用户的进程r 只 阅读全文
posted @ 2013-04-22 14:00 tobeprogramer 阅读(232) 评论(0) 推荐(0)
摘要: 用以下方法将socket设置为非阻塞方式intflags=fcntl(socket,F_GETFL,0);fcntl(socket,F_SETFL,flags|O_NONBLOCK);用以下方法将socket设置为非阻塞方式int flags = fcntl(socket, F_GETFL, 0);fcntl(socket, F_SETFL, flags | O_NONBLOCK);将非阻塞的设置回阻塞可以用int flags = fcntl(socket, F_GETFL, 0);fcntl(socket, F_SETFL, flags & ~O_NONBLOCK);功能描述:根据文 阅读全文
posted @ 2013-04-19 14:24 tobeprogramer 阅读(1064) 评论(0) 推荐(0)
摘要: 有些学习过Bootloader和内核的朋友肯定会知道,在调用C语言函数之前肯定会有一段汇编代码在前面铺路,进行一些必要的初始化工作;而那些只学过单片机而没有学过ARM的朋友肯定会觉得很奇怪,在单片机中写C代码,前面完成可以不用任何汇编代码。这是为什么呢? 这主要是因为我们的开发环境(这里主要是指编译环境)的不同,在开发单片机程序的时候,开发环境(如KEIL)会在编译C代码的时候,给我添加启动代码(startup-51)或者在编译时已经由编译器在后台为我们初始化好了。而在开发ARM程序时,ARM处 理器支持多种模式,多种功能,而在不同的领域不同的项目里面,我们可以有选择的、适当的选择这些功能.. 阅读全文
posted @ 2013-04-19 12:01 tobeprogramer 阅读(787) 评论(0) 推荐(0)