自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 实用gdb命令

1.启动与退出gdb一般有三种方式启动gdb:第一种--->gdb  a.out           与先运行gdb再file  a.out等价第二种--->gdb   a.out   core.pad    这里,我们得预先获取了被调试程序的core文件core.pid(core文件是程序崩溃时所生成的内存转储文件,通过该文件可以还原程序崩溃时的情景。如果程序崩溃时没有生成core文

2013-09-28 10:11:41 1235

原创 ld,链接脚本

·将目标文件或库中的段简单的堆砌在一起·重定位重定位的概念:链接而生成的可执行程序虽然是放在文件中的,但当程序运行时需要加载到内存中。各段应放在内存空间的什么位置是由可执行程序文件内的头部信息指定的。一个程序一旦被加载带内存中,就意味着不论是函数还是变量,它们都会在内存中占据一定的内存空间,而这关系到内存地址。假设foo()函数在加载带内存中后其地址刚好位于0x10

2013-09-27 09:48:03 2739

原创 binutils工具集,软件开发利器

如果使用gcc编译器,那么在开发中就离不开使用与之配套的工具集(tool chain),即binutils。工具集中的部分工具除了被gcc在后台使用为我们创建程序文件之外,其他则有助于方便开发和调试.在binutils工具集中,以下工具是我们在做嵌入式软件开发时需要掌握的。·as是汇编编译器,用于将汇编代码转换为目标文件。·addr2line用于得到程序指令地址所对应的

2013-09-24 11:18:47 1756

转载 set env export区别

set,env和export这三个命令的区别set 显示当前shell的变量,包括当前用户的变量 env 显示当前用户的变量 export 显示当前导出成用户变量的shell变量 每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如HOME,SHELL等这些变量,但shell自己的变量不同

2013-09-24 10:52:36 1278

原创 实用的gcc选项

1.获取系统头文件搜索路径:gcc -v 有效C源文件2.产生映射文件:除了实用nm工具外,可以在用gcc命令时,用-wl传递参数给连接器ld产生映射文件gcc -wl,-Map=main.map   main.c  -o  main.exe3.定义宏:gcc -D'GREET=2'   main.c  -o main.exe相当于#define

2013-09-24 10:30:14 1128

原创 gcc如何获取系统头文件路径

使用命令:gcc -v main.c也就是gcc -v 有效C源文件注意-v后面要加有效C源文件后,输出信息才包含系统头文件路径gcc -v的输出:使用内建 specs。COLLECT_GCC=/usr/bin/gccCOLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-redhat-linux/4.5.1/lto-wrapper目标:i6

2013-09-24 08:31:23 3497

原创 读懂预处理文件

main.c:#include #define min(X,Y) ((X)<(Y)?(X):(Y))int main(){ printf("The min is %d\n",min(3,4)); return 0;}预处理gcc -E main.c > main.pre.ccat main.pre.c从中能

2013-09-23 16:26:43 1295 1

转载 Linux Sed使用

作者:Jims of 肥肥世家jims.yang@gmail.com>Copyright © 2004,2005, 本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。发布时间:2004年09月20日最近更新:2005年12月22日,增加小技巧章节。Table o

2013-09-22 11:34:05 898

转载 Linux下的常用软件列表

Linux下的常用软件列表id=text5182style="FONT-SIZE:13px">1.Applications:应用软件  1)Dia:一个工程图编辑器,适用于绘制电路图;  2)Calendar:一个集日历与日程表于一身的好工具;  3)AddressBook:一个通讯录;  4)GEdit:一个功能类似于Windows下的记事本的文本编辑器;  5)

2013-09-18 18:34:32 903

原创 链接时产生Map文件作用和必要性

可以要求linker产生map文件(例如GNU Linker ‘ld’的-m参数),虽然每套编译工具产生map文件格式可能都不一样,但它的基本用途就是记录项目中每一个Symbol之LMA与VMA的对应关系。这个map文件很有用,我们可以从map文件中得到下列信息:·程序各区段的寻址是否正确·程序各区段的size,即目前存储器的使用量·程序中各个symbol的地址·各个symbol在

2013-09-18 10:23:32 2322

转载 Linux程序设计: 会话(session)

会话4. 名称::setsid功能:建立一个会话头文件:#include函数原形:pid_tsetsid(void);参数:无返回值:若成功则返回进程组ID,若出错则返回-1。 

2013-09-13 16:26:47 2643

转载 派生类型(sys/types.h)

派生类型:使用系统派生类型有助于使代码对于 32 位和 64 位均安全,这是由于派生类型本身对于 ILP32 和 LP64 数据模型均安全。通常,使用派生类型以便于更改是良好的编程做法。如果数据模型在将来发生变化,或者在移植到其他平台时,只需更改系统派生类型即可,而无需更改应用程序。 文件 头文件中包含大量应在适当时机使用的基本派生类型。特别是以下几

2013-09-12 20:34:26 928

原创 Valgrind

Valgrind包括如下一些工具:Memcheck。这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用未初始化的内存,使用已经释放了的内存,内存访问越界等。这也是本文将重点介绍的部分。Callgrind。它主要用来检查程序中函数调用过程中出现的问题。Cachegrind。它主要用来检查程序中缓存使用出现的问题。H

2013-09-12 09:12:47 936

原创 ANSI C(标准C)究竟有多少个头文件?

83年 ANSI 年制定ANSI C 87年 ANSI 年公布新标准87 ANSI C    15个头文件90年 ISO 接受ANSI C为 ISO C        15个头文件95年 ISO 增加3个头文件               18个头文件99年 ISO 增加6个头文件               24个头文件11年 ISO 增加5个头文件             

2013-09-11 20:14:51 1693

转载 C语言中定义与声明的本质区别:有无内存分配

变量在定义时被分配内存,并且变量可以指定一个初始化的值。变量只能在这个程序中定义一次。声明在该程序中指定了变量的类型和名称。定义也是一种声明:当我们定义一个变量时,我们声明了它的名字和类型。我们也可以通过使用extern关键字来声明一个变量的名字而不用定义。  一个声明可以是加extern前缀的并包含了目标的类型和名称,如:  点击(此处)折叠或打开  extern int i; //

2013-09-11 10:10:02 6098 3

转载 防止重复包含,#ifndef

这是宏定义的一种,它可以根据是否已经定义了一个变量来进行分支选择,一般用于调试等等.实际上确切的说这应该是预处理功能中三种(宏定义,文件包含和条件编译)中的一种----条件编译。 C语言在对程序进行编译时,会先根据预处理命令进行“预处理”。C语言编译系统包括预处理,编译和链接等部分。#ifndef x //先测试x是否被宏定义过#define x程序段 1 //如果x没

2013-09-10 20:14:50 704

原创 [Linux/Unix C 编程] perror函数,strerror函数,errno

void perror(const char *s); perror ("open_port");函数说明perror( ) 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno 的值来决定要输出的字符串。在库函数中有个errno变量,每个errno值对应着以字符串表示的错误类型。当你

2013-09-10 10:24:19 5478

转载 ssize_t与size_t的前世今生

Ssize_t 与size_t跟踪linux源码得到以下宏: #ifndef _SIZE_T#define _SIZE_Ttypedef __kernel_size_t         size_t;#endif #ifndef _SSIZE_T#define _SSIZE_Ttypedef __kernel_ssize_t       ssize_t;

2013-09-10 09:53:06 1466

转载 Side Effect与Sequence Point

http://learn.akae.cn/media/ch16s03.htmlSide Effect与Sequence Point 请点评如果你只想规规矩矩地写代码,那么基本用不着看这一节。本节的内容基本上是钻牛角尖儿的,除了Short-circuit比较实用,其它写法都应该避免使用。但没办法,有时候不是你想钻牛角尖儿,而是有人逼你去钻牛角尖儿。这是我们的学员在找工

2013-09-08 20:38:26 786

原创 C文件流

在Linux系统中,系统默认认为每个进程打开了3个文件,即每个进程默认可以操作3个流,即标准输入了流(/dev/stdin),标准输出流(/dev/stdout),标准错误输出流(/dev/stderr),每个进程默认从标准输入流中读取数据,从标准输出流些正确的信息,向标准错误输出流些错误信息。·缓冲文件操作:高级文件操作,将在用户空间中自动为正在使用的文件开辟内存缓冲区。ANSI标准

2013-09-08 11:28:28 1170

原创 Jazelle® DBX—— 来自ARM®的Java加速技术

作者:ARM中国                    在嵌入式设备上运行高性能Java作 者:ARM中国摘 要:在过去几年里,无线手持设备市场对Java产生了巨大的需求增长,主要的增长力量来自于移动游戏。广大消费者,网络运营商,服务/内容提供商以及手机制造商强烈渴望手机的Java性能更强劲,支持更多更复杂的应用,为产业链各方

2013-09-03 09:07:01 3537 1

转载 内核开发基础

1、Linux内核简介a、Linux系统是如何构成的?Linux系统可以分成用户空间和内核空间用户空间:用户程序,C库;内核空间:内核,系统调用接口,体系结构相关代码;b、为什么Linux系统会被划分为用户空间与内核空间?现代CPU通常实现了不同的工作模式,以ARM为例,实现了7种工作模式:系统

2013-09-03 08:20:03 994

转载 BMP文件格式

6.1 BMP文件格式6.1.1 简介位图文件(Bitmap-File,BMP)格式是Windows采用的图像文件存储格式,在Windows环境下运行的所有图像处理软件都支持这种格式。Windows 3.0以前的BMP位图文件格式与显示设备有关,因此把它称为设备相关位图(device-dependent bitmap,DDB)文件格式。Windows 3.0以后的BMP

2013-09-02 08:59:49 530

(仿冒pl-2303_win7_64bit驱动

本人win7 64位,亲测可用,传上来分享下,选择更新硬件驱动。解决PL2303驱动黄色叹号问题(该设备无法启动。 (代码 10)) (经过多次研究发现,原来是芯片不是正规授权,应该是冒牌的,然后原厂为了打击这种冒牌的,在新版的驱动中加入了鉴别代码,让盗版芯片无法正常运行,那我们可以使用老版本的驱动,老版本的驱动使用正常。)

2013-06-15

全国三级C语言模拟上机 练习

全国三级C语言模拟上机! 练习 免费哦

2011-01-01

superscan端口扫描 工具

又快又好用 又快又好用 又快又好用 又快又好用 又快又好用

2010-11-04

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除