摘要: 转:http://blog.chinaunix.net/uid-29025972-id-3889653.html1>异常:是指CPU内部出现的中断,即在CPU执行特定指令时出现的非法情况。同时异常也称为同步中断,因此只有在一条指令执行后才会发出中断,不可能在指令执行期间发生异常。a.产生的原因: 程序的错误产生的,编程异常通常叫做软中断(eg:除数为0) 内核必须处理的异常条件产生的(eg:缺页)产生的目的:Linux利用异常来达到两个截然不同的目的:·给进程发送一个信号以通报一个反常情况·管理硬件资源 对于第一种情况,例如,如果进程执行了一个被0除的操作,CPU则会 阅读全文
posted @ 2013-09-08 22:50 摩斯电码 阅读(9589) 评论(0) 推荐(2) 编辑
摘要: 转载:http://www.douban.com/note/165931644/经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量就相当有用了。在程序代码中包含 #include ,然后每次程序调用失败的时候,系统会自动用用错误代码填充errno这个全局变量,这样你只需要读errno这个全局变量就可以获得失败原因了。例如:#include #include #include int main(void){int fd;e.. 阅读全文
posted @ 2013-09-08 22:48 摩斯电码 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 转载:http://blog.chinaunix.net/uid-29025972-id-3874376.html程序编译后生成的目标文件至少含有三个段,分别为:.text、.data和.bss。text段:就是放程序代码的,编译时确定,只读;data段:存放在编译阶段(而非运行时)就能确定的数据,可读可写.就是通常所说的静态存储区,赋了初值的全局变量和静态变量存放在这个区域,常量也存放在这个区域; bss段:定义而没有赋初值的全局变量和静态变量,放在这个区域; 一个由c/C++编译的程序运行时占用的内存分为以下几个部分: 1、栈区(stack)— 由编译器自动分配释放 ,存放... 阅读全文
posted @ 2013-09-08 22:46 摩斯电码 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 转载;http://blog.chinaunix.net/uid-29025972-id-3855500.html对动态库的实际应用还不太熟悉的读者可能曾经遇到过类似“error while loading shared libraries”这样的错误,这是典型的因为需要的动态库不在动态链接器ld.so的搜索路径设置当中导致的。 具体说来,动态链接器ld.so按照下面的顺序来搜索需要的动态共享库: 1.ELF可执行文件中动态段中DT_RPATH所指定的路径。这实际上是通过一种不算很常用,却比较实用的方法所设置的:编译目标代码时,可以对gcc加入链接参数“-Wl,-rpath”指定动态库搜索.. 阅读全文
posted @ 2013-09-08 22:45 摩斯电码 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 转载:http://blog.chinaunix.net/uid-29025972-id-3855495.html 1. 连接和运行时库文件搜索路径的设置 库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之外的库,需要将库的位置添加到库的搜索路径之中。设置库文件的搜索路径有下列两种方式,可任选其一使用: (1). 在 /etc/ld.so.conf 文件中添加库的搜索路 阅读全文
posted @ 2013-09-08 22:44 摩斯电码 阅读(711) 评论(0) 推荐(0) 编辑
摘要: 转载:http://blog.chinaunix.net/uid-29171357-id-3889735.html1. 相关指令:chgrp:改变文件所属用户组 点击(此处)折叠或打开 chgrp [-R] group dirname/filename -R: 基本-r参数都是递归recursive chown:改变文件所有者、也可以改变用户组 点击(此处)折叠或打开 chown [-R] username dirname/filename chown [-R] username:groupdirname/filename ... 阅读全文
posted @ 2013-09-08 22:42 摩斯电码 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 转载:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或 替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则 表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex, 复数有regexps、regexes、regexen。这些是正则表达式的定义。 由于起源于unix系统,因此很多语法规则一样的。但是随着逐渐发展,后来扩展出 阅读全文
posted @ 2013-09-08 22:41 摩斯电码 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 转载:http://blog.chinaunix.net/uid-28917424-id-3889917.html前不久就在某位同学的博客里看到,但是今天找了好久没找到,就直接google了,现贴出来跟大家分享一下格式如下(双引号里面没有加任何额外字符,"字符串"为要打印的内容):printf("\... 阅读全文
posted @ 2013-09-08 22:32 摩斯电码 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 转载:http://blog.chinaunix.net/uid-28685940-id-3889916.html内核代码绝大部分使用C语言编写,只有一小部分使用汇编语言编写,例如与特定体系结构相关的代码和对性能影响很大的代码。GCC提供了内嵌汇编的功能,可以在C代码中直接内嵌汇编语言语句,大大方便了程序设计。 一、基本内嵌汇编 GCC提供了很好的内嵌汇编支持,最基本的格式是:__asm__ __volatile__(汇编语句模板); 1、__asm__ __asm__是GCC关键字asm的宏定义:#define __asm__ asm __asm__或asm用来声明一个内嵌汇编表达式,所以任 阅读全文
posted @ 2013-09-08 22:30 摩斯电码 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 转载:http://blog.chinaunix.net/uid-28685940-id-3889921.html 交叉编译工具链是一个由编译器、连接器和解释器组成的综合开发环境,交叉编译工具链主要由binutils、gcc和glibc 3个部分组成。有时出于减小 libc 库大小的考虑,也可以用别的 c 库来代替 glibc,例如 uClibc、dietlibc 和 newlib。建立交叉编译工具链是一个相当复杂的过程,如果不想自己经历复杂繁琐的编译过程,网上有一些编译好的可用的交叉编译工具链可以下载,但就以学习为目的来说读者有必要学习自己制作一个交叉编译工具链 构建ARM Linux交叉编 阅读全文
posted @ 2013-09-08 22:29 摩斯电码 阅读(1730) 评论(0) 推荐(0) 编辑
摘要: 转载:blog.chinaunix.net/uid-28685940-id-3889918.html我们对每个c或者汇编文件进行单独编译,但是不去连接,生成很多.o 的文件,这些.o文件首先是分散的,我们首先要考虑的如何组合起来;其次,这些.o文件存在相互调用的关系;再者,我们最后生成的bin文件是要在硬件中运行的,每一部分放在什么地址都要有仔细的说明。我觉得在写makefile的时候,最为重要的就是ld的理解,下面说说我的经验:首先,要确定我们的程序用没有用到标准的c库,或者一些系统的库文件,这些一般是在操作系统之上开发要注意的问题,这里并不多说,熟悉在Linux编程的人,基本上都会用ld命 阅读全文
posted @ 2013-09-08 22:23 摩斯电码 阅读(7210) 评论(0) 推荐(1) 编辑
摘要: 转载自:http://blog.chinaunix.net/uid-29094179-id-3889999.html1、正确显示中文注释1)Options->Style Properties2) 在左边Style Name下找到Comment Multi Line和Comment.在其右边对应的Font属性框下的Font Name中选“Pick...” 设置为宋体、常规、小四。确定,退回Style Properties界面,Size设为10。3)Done2、使能正确删除一个汉字Project→Open Project,打开Base项目;新建一个SuperBackSpace.em文件(在\ 阅读全文
posted @ 2013-09-08 22:18 摩斯电码 阅读(472) 评论(0) 推荐(0) 编辑