- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 库函数与系统调用函数
系统调用函数和库函数的区别:上图为库函数和系统调用函数的层次结构。从图中我们可以看到内核可以直接对系统调用函数进行服务,而库函数想要内核对其进行服务时需通过调用更低层次的系统调用函数来实现。则对于库函数与系统调用函数自己总结出了以下几点不同:从程序完成的功能来看:函数库提供的函数通常是不需要操作系统的服务. 函数是在用户空间内执行的,除非函数涉及到I/O操作等,一般是不会切到内核态的...
2018-06-25 17:04:32 2272
原创 Linux基础知识及常用命令:
1、Linux文件组织形式 2、Linux文件的分类 Linux目录下一切皆文件: 3、文件操作命令 : cd: 切换目录 pwd: 显示当前路径 ls: 显示当前目录下的文件 touch:创建普通文件 mkdir:创建目录文件 mkfifo:创建管道文件 rm:删除普通文件 su:切换到 ro...
2018-06-23 21:04:10 294
原创 const用法详解
首先我们来了解一下现在所学的C标准,分别是C89、C99和C++99,C89标准的C语言中的const和C++中的const是有区别的,而在C99标准的C语言中是相同的。我们目前所学的C语言标准为C89标准。const修饰的量为一个常量即不能被修改的量。但在C语言(C89)中的const可以不初始化但后续也就无法对其赋值,所以尽管不初始化不会出错,但要使用const修饰的量就需要对其进行初始...
2018-06-19 15:43:41 72536 6
原创 解析函数的堆栈调用过程
关于函数的调用堆栈有如下几个问题:函数调用函数的栈桢开辟及回退过程是什么?主调函数在调用被调函数的中间过程做了什么?被调函数执行完成后是怎样回到主调函数的?在回到主调函数后是怎么知道要运行哪一条代码(指令)?要解决这些问题,我们就要从汇编的角度切入。通过汇编代码能够使我们更加清晰地掌握函数的堆栈调用。 汇编分为两种形式inter x86 (从右向左看) 和 AT&...
2018-06-17 12:50:22 801
原创 深入理解编译连接和运行
对于每一个程序经过编译连接生成可执行文件的过程中操作系统会为每一个程序分配一个虚拟地址空间,其大小和操作系统的位数有关(32位操作系统为4G)。这4G的空间被分为3G用户空间和1G内核空间,其中内核空间是共享的,用户空间时独立的,用户空间又有如下分布:保留区:不可访问text段:存放程序编写后的指令data段:存放初始化了的且初始值不为零的全局变量bss段:存放未初始化或初始化为零的全...
2018-06-16 10:18:36 1871
转载 define和typedef的区别详解
原文链接:http://developer.51cto.com/art/201104/256060.htmtypedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。而#define是预处理指令。下面让我们一起来看两者的区别。typedef是C语言语句,其功能是用户为已有数据类型取“别名”。 例如: typedef in...
2018-06-06 09:40:12 1146
原创 从汇编角度看函数参数传递
基本理论:函数参数传递机制问题在本质上是调用函数过程和被调用函数在调用发生时进行同的方法问题。基本的参数传递机制有两种,值传递、引用传递。值传递: 在值传递过程中,被调函数的形参作为被调函数的局部变量,即在该函数栈中开辟内存空间以存放由主函数传递进来的实参的值,从而成为实参的一个副本。值传递的特点是被调函数对形参的任何操作都是作为局部变量进行,不会影响主函数实参的值。引用传递:引用传递...
2018-06-05 16:11:39 5838
原创 指针、数组及内存管理
我们先来了解一下C与C++的内存管理。内存分配方式:从静态存储存储区域分配:内存在程序编译的时候就分配好,这块内存在程序运行的整个周期都存在。例如全局变量、静态(static)变量。在栈上创建:在执行函数时,函数内局部变量的存储单元都在栈上申请内存空间,函数执行结束时这些存储单元由内核自动释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。从堆上分配:即动态...
2018-06-03 10:34:29 213
沙拉查词-聚合词典划词翻译_v7.5.4.crx
2020-03-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人