自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 资源 (7)
  • 收藏
  • 关注

转载 窥探 kernel,just for fun --- sys_fork,sys_vfork,sys_clone,kernel_thread

分类: 嵌入式linux kernel篇2012-04-19 22:31 245人阅读 评论(2) 收藏 举报本系列文章由张同浩编写,转载请注明出处:http://blog.csdn.net/muge0913/article/details/7479379邮箱:muge0913@sina.com用户空间进程创建接口

2012-04-28 11:56:06 719

转载 窥探 kernel,just for fun --- 有关系统调用的几个知识点

窥探 kernel,just for fun --- 有关系统调用的几个知识点分类: 嵌入式linux kernel篇2012-04-27 14:08 90人阅读 评论(0) 收藏 举报本系列文章由张同浩编写,转载请注明出处:http://blog.csdn.net/muge0913/article/details/7517303邮箱:muge0913@sina

2012-04-28 11:50:33 348

转载 c语言关键字之 extern

【转】 extern可以修饰变量和函数,表示该变量或者函数在其它地方被定义(本源文件或其它源文件内,见注[1]),在这里声明使用它,这样多个源文件共享变量和函数;多个c源文件的编译是独立的,所以编译器无法判断多个源文件共享的变量的类型是否一致(只判断变量名或函数名是否一致); 等到链接的时候(这个阶段已经不再进行语法检查了),多个源文件编译后的.o文件链接成一个目标文件,如果有一个

2012-04-28 11:46:18 370

转载 linux句柄

1.句柄就是一个标识符,只要获得对象的句柄,我们就可以对对象进行任意的操作。.2.句柄不是指针,操作系统用句柄可以找到一块内存,这个句柄可能是标识符,map的key,也可能是指针,看操作系统怎么处理的了。fd算是在某种程度上替代句柄吧;Linux 有相应机制,但没有统一的句柄类型,各种类型的系统资源由各自的类型来标识,由各自的接口操作。.3.http

2012-04-24 10:15:39 371

转载 堆栈

. 堆 (heap。软件底层原理,而非数据结构)堆位于RAM中,是一个通用的内存池,它一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。所有的对象都存储在堆中。堆是动态分配内存的,并且你可以分配使用很大的内存。但是用不好会产生内存泄漏。4. 栈 (hardware stack。软件底层原理,而非数据结构)栈存在于RAM中,它由编译器自动分配、释放。栈是动态的,它的存储

2012-04-18 16:21:24 323

转载 关于C程序运行时的内存 的一些理解

学习过C语言的同学应该都知道内存是什么,以及怎么用。但是程序代码编译目标文件和可执行文件是什么格式?程序在内存里是怎么组织的呢?分为哪几个部分?堆栈有哪些具体功能?当函数调用时发生了什么?等等问题。并不一定每个人都很清楚。下面就写点我以前看书时的日记和理解。一、             首先来讲一下目标文件和可执行文件的格式不同的系统的可执行文件有不同的格式。在SVr4实现中都采用了ELF

2012-04-18 15:18:57 514

转载 程序执行时的内存

当一个源代码通过gcc编译成a.out,执行a.out时 程序便开始了执行之旅(即进程)操作系统为进程分配堆栈空间,随后把程序执行码放入文本段,把程序经过初始化的全局变量和静态变量放入data 把程序为初始化的全局变量和静态变量放入bss段 并对bss段数据初始化为0之后cpu代码段指针指向main的入口,cpu堆栈段指针指向栈顶。代码段指针从main的入口地址顺序读取指令代码并进行执

2012-04-18 14:13:05 543

转载 中断与函数调用的区别

程序, 中断, 调用, 函数在《微机原理》和《计算机组成》等课程[1-4]教学中(本文以MCS-51单片机为例),中断过程既是教学难点又是教学重点,它与主程序调用子程序过程有一定相似性,但又有很大区别,调用子程序过程相对比较容易掌握,通过把两过程结合起来,采用比较教学方法,能收到了很好的教学效果。 1、两过程定义与作用    子程序是微机基本程序结构中的1种,基

2012-04-18 13:49:25 5034

转载 函数调用栈

分类: VC学习2012-01-22 01:24 27人阅读 评论(0) 收藏 举报首先引入几个寄存器:EIP,EBP,ESP都是系统的寄存器,里面存的都是些地址。为什么要说这三个指针,是因为我们系统中栈的实现上离不开他们三个。我们DC上讲过栈的数据结构,主要有以下特点:后进先处。(这个强调过多)其实它还有以下两个作用:1.栈是用来存储临时变量,函数传递

2012-04-18 10:31:21 409

转载 函数调用时发生了什么

我们下面就来探究一下高级语言中函数的调用和递归等性质是怎样通过系统栈巧妙实现的。请看如下代码: int func_B(int arg_B1, int arg_B2){int var_B1, var_B2;var_B1=arg_B1+arg_B2;var_B2=arg_B1-arg_B2;return var_B1*var_B2;}int func_A(int arg_A1,

2012-04-18 09:20:36 1088

转载 用c语言实现ping

分类: C Programming 2012-04-15 22:46 10人阅读 评论(0)收藏 举报ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具。ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者,这有点象潜水艇声纳系统中使用的发声装置。例如,在Linux终

2012-04-17 07:05:59 411

转载 gcc编译过程迁徙

GCC编译过程浅析  2012-01-08 17:07:18|  分类:编程技术|  标签:linux  编程  学习笔记  |字号大中小 订阅前几天看了《程序员的自我修养——链接、装载与库》中的第二章“编译和链接”,主要根据其中的内容简单总结一下C程序编译的过程吧。我现在一般都是用gcc,所以自然以GCC编译hellworld为例,简单总结如下。

2012-04-14 11:27:54 347

转载 函数调用

程序的代码是存放在代码区的,一般代码区为只读的,不可修改的,道理很简单就是程序的安全性。其他的常量什么的也有自己的内存区域, 栈的调用过程一般是内存地址向下分配的。1 函数返回值一般在调用函数时已经分配指向该返回值的内存地址或寄存器;2 函数调用的栈部分是连续的,通过esp,ebp相互赋值实现。创建新函数首先会将新的esp作为新函数的ebp;(因为该原因

2012-04-14 11:27:09 330

转载 函数不能嵌套定义

C函数总是从主函数开始执行的,其它函数只有在被主函数或其它正在执行的函数调用时才能被程序执行,执行之后返回调用函数,最后返回到主函数,在主函数众结束整个程序的运行。所有的函数都是相互独立的,他们之间时平行关系,所以不能在一个函数内部定义另一个函数,即不能嵌套定义。函数可以互相调用,但是不能调用主函数。

2012-04-14 11:26:54 7505

转载 代码

请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句#define Compare(a,b) ((a)-(b)) != abs((a)-(b)) ? b : a 有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?答案参考:http://

2012-04-14 11:26:38 346

转载 指针函数与函数指针

(2012-02-14 20:44)标签:  pointer  分类: Pointer【函数指针】       在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。1.函数指针定义函数类型 (*指针

2012-04-14 11:25:46 280

转载 const详解

(2012-02-12 20:37)分类: Key_Word基本解释  const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面

2012-04-14 11:25:37 331

转载 linux文件系统基础知识

(2012-02-06 13:15)标签:  linux  基础知识  分类: File_System1、linux文件系统分配策略    块分配( block allocation ) 和 扩展分配  ( extent allocation )    块分配:磁盘上的文件块根据需要分配给文件,避免了存储空间的浪费。但当文件扩充时,会造成文件中文件块的不连续

2012-04-14 11:25:23 356

转载 两篇很牛的vim使用技巧

(2012-01-30 22:21)标签:  转载  分类: VIM原文地址:两篇很牛的vim使用技巧 作者:liurhyme读本文之前请注意:1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率。部分技巧在vi上也可以使用,但是现在基本上都是用vim了。2. 本文是整理和总结使用技巧,而非讲解vim入门,因此不会涉及最基

2012-04-14 11:25:11 577

转载 《linuxC编程实战》面试题摘选

(2012-01-30 21:44)标签:  编程 面试题  分类: Test_questions1、 int a=5;       a=(a=3*5,a*4),a+5;        a=?       注:赋值运算符要优先于逗号运算符,故 a = 60;2、交换两个变量(整型)的值,且不允许使用中间值      int a,b;

2012-04-14 11:24:59 937

转载 C语言 数组注意问题

(2012-01-10 22:15)标签:  C语言  分类: Arrayint a[10];    数组名是常量不能为左值(如:a = 5;)    不要认为数组元素a[i]代表数组元素的值,它代表数组元素本身,可作为左值使用。    为指针进行初始化的字符串是只读的   (如:char *p = "hello"; strc

2012-04-14 11:24:48 833

转载 自己常用的linux的自定义命令

(2012-01-09 23:55)标签:  linux  分类: shell有时候有些命令不好记, 我会写一些bash或者perl,保存这些命令, 然后取个好记的名字直接使用。 一般我喜欢在自己的目录下建立一个.bin目录(不是bin,前面有个点,这样这个目录就是隐藏的,防止被误删), 然后把这个目录加到$path里, 修改用户目录下的.bashr

2012-04-14 11:24:38 472

转载 ls -l命令详解

(2012-01-04 14:13)分类: Linux_CMD我们平时用ls -l 命令查看一个目录下的文件和子目录的详悉信息时,会得到一个详细的文件和目录名列表.这个列表包含了文件的属性,所属用户,所属组,创建时间,文件大小等 等信息.这些信息到底是什么意思呢?有很多初学者对这些不太了解,因此想详悉讲解一下用ls -l命令得到的文件列表每一个字段的意思

2012-04-14 11:24:28 818

转载 认识C和内存管理

(2011-12-30 01:19)标签:  内存  分类: C_Language课程中推荐的C/C++在线学习资料:http://www.cprogramming.com 高位地址:命令行参数及环境变量stack (存放着局部变量和函数参数等数据),          向下生长   (可读可写可执行)heap  (给动态分配内存是使用),

2012-04-14 11:24:09 301

转载 C语言可以给字符数组赋值的方法

(2011-12-29 20:24)标签:  C语言  分类: Memory_layoutchar a[10];怎么给这个数组赋值呢?1、定义的时候直接用字符串赋值char a[10]="hello";注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!2、对数组中字符逐个赋值char a[10]=

2012-04-14 11:24:01 415

转载 Linux下链接动态库静态库的理解

(2011-12-29 16:45)标签:  目录  搜索  include  执行文件  Linux  分类: C_LanguageLinux程序GCC编译基本过程一个程式从原始码到可执行文件(或共享库文件),一般都要经过预处理、编译、汇编和链接这四个步骤。编译过程扫描头文件的搜索路径顺序gcc 在编译时如何去寻找所需要的头文件 :※所有hea

2012-04-14 11:23:51 342

转载 谁调用了我的 main

(2011-12-28 02:11)分类: Function现在最重要的是要跟得上潮流,所以套用比较时髦的话,谁动了我的奶酪。谁调用了我的 main?不过作为计算机工作者,我劝大家还是不要赶时髦,今天Java热,明天 .net 流行,什么时髦就学什么。我的意思是先花几年把基本功学好,等你赶时髦的时候也好事半功倍。废话不多说了。        我们都听说过一句话:

2012-04-14 11:23:31 586

转载 内存地址的计算方法

(2011-12-29 08:04)标签:  内存  计算方法  分类: C_Language内存是按字节编址的,所以单位是字节哈,1字节可是等于8位的。因为计算的范围一般比较小,所以就记住两个就够了。记住几个常用的2的10次方为1024即1KB2的20次方=(2的10次方)的平方,即1MB就行了如果要求更大的,那就再记住2的40次方=(2的10次方)的4次

2012-04-14 11:23:16 834

转载 C语言趣味题目

(2011-12-25 17:29)标签:  C语言  分类: Test_questions第一题:#include static jmp_buf buf;int main(void){volatile int b = 3;if (setjmp(buf) != 0){printf(“%d\n”, b);exit(0);

2012-04-14 11:22:51 471

转载 指针、数组和函数

(2012-02-15 13:15)标签:  指针、数组和函数  分类: Pointer基本解释  1、指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是一系列的变量。  2、数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以

2012-04-13 17:04:50 242

转载 C语言关于补码的解释及误区

(2012-02-17 00:32)标签:  C语言  分类: Numerical_storage加法器计算机里面,只有加法器,没有减法器,所有的减法运算,都必须用加法进行。即:减去某个数字(或者说加上某个负数)的运算,都应该研究如何用加法来完成。模、补数在日常生活当中,可以看到很多这样的事情:把某物体左转 90 度,和右转 27

2012-04-13 17:03:39 392

转载 有符号数和无符号数负数

(2012-02-17 01:23)分类: Numerical_storage理解有符号数和无符号数负数在计算机中如何表示呢? 这一点,你可能听过两种不同的回答。 一种是教科书,它会告诉你:计算机用“补码”表示负数。可是有关“补码”的概念一说就得一节课,这一些我们需要在第6章中用一章的篇幅讲2进制的一切。再者,用“补码”表示负数,其实一种公式,公式的作用

2012-04-13 17:03:04 493

转载 实例分析用指针访问二维数组的几种方法

(2012-02-18 21:48)分类: Array之前对数组的概念一直没有理解透彻,只觉得数组名就是个常量指针而已,用法和基本的指针差不多。所以当我尝试用二级指针去访问二维数组时,就经常会出错。下面就是刚开始写的一个错误的程序:#include int main(){int iArray[2][3] = {{1,2,3},{4,5,6}};

2012-04-13 17:02:23 702

转载 多维数组和指针

(2012-02-20 02:12)分类: Pointer一维数组名即是一个指针常量,它代表数组第一个元素的地址,我们知道一维数组的长度,那么可以通过数组名输出一维数组的所有元素:#include stdio.h>int main(void){    int i;    int a[5] = {1, 2, 3, 4

2012-04-13 17:01:26 280

转载 malloc()和free()的基本概念以及基本用法

1、函数原型及说明:void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。关于分配失败的原因,应该有多种,比如说空间不足就是一种。void free(void *FirstByte): 该函数是将之前用malloc分配的空间还给程序或者是操作系统,也就是释放了这块内

2012-04-13 17:00:20 257

转载 C/C++数组名与指针区别深入探索

(2012-02-23 16:32)标签:  程序  分类: Array  魔幻数组名  请看程序(本文程序在WIN32平台下编译):1. #include 2. int main(int argc, char* argv[])3. {4.  char str[10];5.  char *pStr = str;6.  cout

2012-04-13 16:58:57 275

转载 LINUX的passwd文件和命令

(2012-02-26 13:00)标签:  记录  账号  LINUX  color  Linux  分类: Linux_CMD通常在Linux系统中,用户的关键信息被存放在系统的/etc/passwd文件中,系统的每一个合法用户账号对应于该文件中的一行记录。这行记录定义了每个用户账号的属性。下面是一个passwd文件的示例(部分摘录):  root:x:

2012-04-13 16:57:49 777

转载 SSH原理与运用:远程登录、远程操作与端口转发

(2012-02-27 15:11)标签:  ssh远程登录  分类: ServicerSSH是每一台Linux电脑的标准配置。随着Linux设备从电脑逐渐扩展到手机、外设和家用电器,SSH的使用范围也越来越广。不仅程序员离不开它,很多普通用户也每天使用。SSH具备多种功能,可以用于很多场合。有些事情,没有它就是办不成。本文是我的学习

2012-04-13 16:57:17 439

转载 C语言中的函数指针

(2012-03-03 14:01)标签:  C语言函数和指针  分类: Function1:简介函数在内存中有一个物理位置,而这个位置是可以赋给一个指针的。函数名就是函数的地址就是该函数的入口点。因此,函数指针可被用来调用一个函数。函数的地址是用不带任何括号或参数的函数名来得到的。(这很类似于数组地址的得到方法,即,在只有数组名而无下标是就得到数组地址。)

2012-04-13 16:52:31 320

转载 C语言指针总结

(2012-03-07 07:22)标签:  C语言  分类: PointerC语言中的精华是指针,这也是C语言中唯一的难点。 C是对底层操作非常方便的语言,而底层操作中用到最多的就是指针,以后从事嵌入式开发的朋友们,指针将陪伴我们终身。  1.指针类型分析 分析指针,可以从变量名处起,根据运算符优先级结合,一步一步分析. int p

2012-04-13 16:51:53 260

计算机中信息编码

计算机中信息 编码 与存储 看了不后悔的资源

2012-12-09

c语言编译过程想详解

详细讲解c语言的编译过程,并附有图解 很好的资料

2012-03-20

c语言难点及分析

详尽解析c语言学习及面试时常出现的难点 帮你解决常遇到的问题

2012-03-20

sd卡引导linu内核 在arm11中的实现

详尽讲解sd卡引导linux内核 启动开发板的过程

2012-03-18

c程序员面试宝典

巧妙回答面试问题 对c中最常见的面试题给予详尽的讲解

2012-03-18

嵌入式系统Bootloader的设计与分析

嵌入式系统Bootloader的设计与分析 简单易懂

2012-03-17

空空如也

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

TA关注的人

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