- 博客(22)
- 问答 (2)
- 收藏
- 关注
原创 UC 5
一、进程映射(续)代码参见memory.c用户空间、内核空间malloc函数分配的空间在堆里。悬空指针段错误产生的原因。代码段、数据段、栈、堆可重入函数函数里的所有变量的空间只能分配在栈里,这样的函数就是可重入函数。二、malloc内存分配通过代码察看malloc内存分配的缓冲机制。代码参见 malloc.c08d5a000-08d
2017-10-17 15:07:05
444
原创 UC 4
一、动态加载在程序中,根据需要自己动态加载库函数。使用了一些列的函数dlopen(3)#include void *dlopen(const char *filename, int flag);功能:将filename指定的动态库加载到内存里。参数:filename:指定了要加载的动态库的文件名。flag:RTLD_LAZY: 懒加载RTLD_NOW
2017-10-17 15:04:14
698
原创 UC 3
一、GDB调试工具的使用举例演示GDB调试工具的使用代码参见tmaht文件夹在程序编译链接成可执行文件的时候,加上-g/-ggdb参数gcc -g *.c -std=c99这样生成的可执行文件里含有调试信息使用以下命令启用GDB调试工具来调试可执行程序 gdb a.outGDB调试命令l list 列出文件的内容b 行号/函数的名字
2017-10-17 15:02:37
291
原创 UC 2
一 指针内存地址是线性的,线性地址地址就相当于是房间的门牌号每个地址对应一个字节的空间。数据存放在地址标识的空间里。变量和常量int var_a;char var_b;数据类型什么是数据类型?怎么去访问一个变量的内容?每个变量都有自己的名字和名字对应的变量的地址,在这个地址空间里有变量的值。首先通过变量的名字找到变量的地址,然后访问变量的内容(变量
2017-10-17 15:00:13
324
原创 UC 1
一、什么是操作系统?操作系统是一款软件。管理硬件资源。还管理软件资源。操作系统是一款管理计算机资源的软件。操作系统的分类:windows unix linux macos ios vxvork GNU组织 基于unix操作系统开发了GNU项目。vi gcc bash ...linux是内核GNU 应用程序和linux内核绑定。GNU/li
2017-10-17 14:50:43
386
原创 C语言基础 16 二叉树 算法
如果单向线性链式物理结构中每个节点有可能找到多个其他节点则它就变成树树里的所有节点可以分成几层,不同层之间符合线性规律(任意两层之间有前后顺序)树的最上面一层只有一个节点,这个节点叫做根节点根节点可以代表整棵树树里不同节点之间的直接关系叫做父子关系,其中靠近根节点的叫父节点,另外一个节点叫子节点树里任何节点最多只能有一个父节点(根节点没有父节点)如果树里任何节点最多只能有两个子
2017-09-19 19:49:28
528
原创 C 语言基础 15 数据结构
数据结构研究怎么使用存储区算法研究解决一些常见问题的通用方法可以从两个完全不同的角度描述数字之间的关系逻辑关系(逻辑结构)描述的是数字之间与计算机无关的关系物理关系(物理结构)描述的是记录数字的存储区之间的关系逻辑结构分成如下几种1.集合结构:所有数字可以看作是一个整体2.线性结构:可以用一条有顺序的线把所有数字连起来3.树状结构:所有数据都是从一个数据向一
2017-09-19 15:49:50
377
原创 C语言基础 14 文件操作
Calderon函数也可以动态分配内存这个函数可以把分配的所有内存内容都设置成0 这个函数也需要包含stdlib.h头文件这个函数需要两个参数,第一个参数表示希望分配的存储区个数,第二个参数表示单个存储区的大小 这个函数的返回值是分配好的第一个存储区的地址 这个函数也可能失败,如果失败则返回值是NULL realloc函数可以调整一段动态分配内存的大小,(尽
2017-09-12 14:19:24
304
原创 C语言基础 13 枚举
枚举也可以用来创建新的数据类型 枚举类型存储区就是整数类型存储区,枚举类型存储区在使用的时候只能存放有限的几个整数 声明枚举类型的时候需要提供一组名称,计算机为每个名称分配一个对应的整数,只有这些整数可以记录在这种枚举类型的存储区里 不同枚举类型存储区里可以记录的整数范围不同 声明枚举类型的时候应该使用enum关键字计算机把从0开始的连续非负整数分配给枚举类
2017-09-12 14:16:02
306
原创 C语言基础 12 结构体
C语言里可以在一个存储区里记录多个数字 这种存储区的类型叫结构体类型,这种类型需要首先创建出来然后才能使用结构体存储区里包含多个子存储区,每个子存储区可以记录一个数字结构体里不同子存储区的类型可以不同, 子存储区类型也可以是结构体类型 结构体声明语句可以创建结构体类型 结构体声明语句中需要使用struct关键字 结构体声明语句中包含多个变量声明语句,这些变量
2017-09-12 14:12:55
238
原创 C语言基础 11 宏
宏也可以用来给计算公式起名字计算公式里包含未知数字,需要使用宏的参数表示这些未知数字 带参数的宏采用二次替换方式进行处理 宏的参数不一定代表数字,所以没有类型名称如果宏有多个参数应该用逗号把相邻的参数名称分隔开 宏不可以使用自己的存储区和函数进行数据传递 宏没有形式参数也没有用来存放返回值的存储区 能当作数字使用的宏必须写成一个表达式,因为宏没有用来
2017-09-12 14:02:47
376
原创 C语言基础 10 函数
不可以使用操作符操作字符串,应该使用一组标准函数为了使用这些标准函数需要包含string.h头文件strlen 统计字符串里有效字符的个数和sizeof不同 strcat 合并两个字符串这个函数有可能修改不属于数组的存储区,这会造成严重错误 strncat 这个函数的功能和strcat一样但是它可以避免strcat函数的问题 strcmp
2017-09-12 13:58:16
368
原创 C语言基础 9 指针 字符串
指针和存储区的捆绑关系可以随着程序的执行不断变化这个时候可以把指针看作是存储区的某种身份,利用指针可以实现针对身份编程如果指针和数组中第一个存储区捆绑就可以用这个指针表示数组里的每个存储区,这个时候可以认为指针间接捆绑了数组里的每个存储区,在这个指针的后边使用下标就可以表示数组里的存储区了地址数据可以参与如下计算过程地址 + 整数 地址 - 整数 地址 - 地址
2017-09-07 16:43:37
220
原创 C语言基础 8 函数 递归 变量
数组可以作为形式参数使用,和数组形式参数配合使用的实际参数应该是一个存储区的地址,通常用数组名称数组做形式参数的时候只是把形式参数写成数组的样子,真正的形式参数并不是数组而是一个可以当作数组使用的变量数组形式参数里包含的存储区都不是被调用函数提供的可以省略数组形式参数声明里中括号中间的整数数组做形式参数的时候需要另外准备一个整数类型的形式参数,用来表示数组形式参数里包含的存储区个数
2017-09-07 16:35:51
709
原创 C语言基础 7 函数
C语言里可以采用分组的方式管理语句每个语句分组叫做一个函数多函数程序执行的模式1.整个程序的执行时间被分成几段,不同时间段被分配给不同的函数使用2.所有时间段之间既不可以重叠也必须连续3.如果函数A把一段时间分配给函数B使用则函数B在完成所有工作之后必须把后面的时间再还给函数A如果函数A在工作过程中把一段时间分配给函数B使用则它们之间存在函数调用关系在这个关系中函数
2017-09-07 16:16:31
227
原创 C语言基础 6 数组
数组名称不可以代表存储区数组名称可以代表数组里第一个存储区的地址可以对数组名称进行sizeof计算,结果是数组里所有存储区包含的总字节个数C99规范里可以使用变长数组声明变长数组的时候用变量表示数组里包含的存储区个数如果程序多次运行则每次运行的时候变长数组里包含的存储区个数可能不同每次程序运行过程中数组里包含的存储区个数仍然不会改变变长数组不可以初始化
2017-09-07 16:05:15
222
原创 C语言基础 5 while循环 随机数
无法预知的数字叫随机数rand标准函数可以用来获得随机数,,为了使用这个标准函数需要包含stdlib.h头文件srand标准函数可以用来设置随机数种子,这个标准函数可以把一个整数作为种子使用不同的种子产生的随机数不同,任何程序只需要设置一次随机数种子,为了使用这个标准函数也需要包含stdlib.h头文件time标准可以获得当前的时间,这个时间用一个整数表示为了使用这个标
2017-09-01 22:42:47
1641
原创 C语言基础 4 if分支 for循环
如果一个表达式中不同数字的类型不同就必须首先把它们转换成同一个类型,然后才能计算这个转换过程叫隐式类型转换,完全由计算机完成转换过程中一定把占地小类型的数字转换成占地大类型的数字如果不同类型数字的大小一样就把有符号类型转换成无符号类型,把整数类型转换成浮点类型在C语言中可以给数字指定一个类型,这做强制类型转换强制类型转换格式如下
2017-08-31 16:22:09
526
原创 C语言基础 3 二进制 操作符
把二进制中所有数位从右向左每三个分成一组,每组用一个0到7之间的数字替代。这个替代结果叫做数字的八进制表示方式0110 1010 01 101 010 152(八进制)可以在程序中直接使用八进制方式表示数字,这个时候必须用0做开头可以采用%o作为占位符把数字的八进制表示方式显示在屏幕上把二进制的所有数位从右向左每四个数位分成一组,每组用一个字符替代。这个
2017-08-31 10:27:41
1733
原创 c语言基础2 字符类型
字符类型的名称是char这个类型里包含256个不同的整数,每个 整数可以代表一个字符(例如'a', '^'等)这些整数和字符是可以互相替代的ASCII码表里列出所有整数和字符之间 的对应关系'a' 97'A' 65'0' 48ASCII码表里所有小写英文字母都是连续排列 的,并且'a'对应的整数最小,
2017-08-30 15:48:54
664
原创 C 语言基础 1
c语言程序的绝大部分因该记录在以 .c 作为扩展名的文件里,这种文件叫做c语言的源文件 c语言里还包含以 .h 作为扩展名的文件,这种文件叫做头文件 c语言程序里可以直接使用数字和加减乘除四则运算 乘法用 * 表示 除法用 / 表示 c语言里每个计算步骤最后都必须使用分号结束 每个使用分号结束的计算步骤叫做一条语句 c语言里绝大多数语句因该写在大括号里面 c语
2017-08-17 23:45:21
253
原创 C语言 linux 基础
linux操作系统可以通过终端软件操作终端里不可以使用鼠标在终端里通过输入不同的命令控制计算机完成不同的任务clear 命令可以清除终端窗口里的文字信息操作系统里用来管理文件的部分叫做文件系统所有文件系统都采用分组方式管理文件,一个分组里可以包含任意数量的文件每个分组里的文件还可以再次分组 ,每个分组叫做文件夹(目录)如果目录A包含目录B则它们之间存在父子关系,其中目录
2017-08-17 22:45:50
293
空空如也
按键驱动安装不了 ,内核配置改了还是不行
2017-07-27
nfs挂载里看不到共享的文件夹和文件
2017-06-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅