专注于linux,网络

积一时之跬步,臻千里之遥程,非宁静无以致远,夫学须静也,才须学也,非学无以广才,非志无以成学...

10-数据块寻址

1. 数据块寻址   如果一个文件有多个数据块,这些数据块很可能不是连续存放的。这些数据块通过inode中的索引项(Block)来找到。 图1-数据块寻址   在inode中这样的索引项一共有15个,即Block[0]–Block[14],每个索引项(Block)占4字节,inode每记...

2018-06-28 21:58:53

阅读数 551

评论数 0

35-稀疏矩阵的三元组表示方式

1. 稀疏矩阵   一个阶数较大的矩阵中的非零元素个数s相对于矩阵元素的总个数 t 很小时,即s< 2. 稀疏矩阵的压缩存储方法   对于稀疏矩阵来说,如果我们还是用100×100的方式来存储的话,显然是非...

2018-06-28 18:00:44

阅读数 8977

评论数 1

11-获取文件信息—stat函数和st_mode结构体

1. stat函数   stat函数是用于获取文件信息,比如文件权限,文件类型信息等等。 函数原型: #include <sys/types.h&am...

2018-06-27 21:21:02

阅读数 401

评论数 0

12 - dup函数和dup2函数

1. dup函数   当调用dup函数时,内核在进程中创建一个新的文件描述符,该文件描述符是当前可用文件描述符的最小数值,这个文件描述符指向oldfd所拥有的文件表项。 函数原型: #include &amp...

2018-06-26 23:24:34

阅读数 91

评论数 0

34-对称矩阵的压缩存储

对于矩阵这样由n行n列构成的数据集合,可以通过二维数组来进行存储。 在实际工程中也会用到一些特殊的矩阵, 特殊矩阵可以“压缩”的一种思维来降低空间需求。 (1)对角矩阵 (2)对称矩阵 (3)上三角矩阵/下三角矩阵 1. 对称矩阵的压缩存储 若一个n阶方阵A[n][n]中的元素...

2018-06-26 20:11:26

阅读数 182

评论数 0

6-改变文件偏移量—lseek函数

1. 文件偏移    通常调用read或write每读写一个字节,就会改变文件的读写位置。而在linux中同样也可以使用lseek函数来修改文件偏移量,即读写位置。    不知道大家是否还有印象没,其实标准C库的fseek函数和系统函数lseek比较类似,fseek函数也可以移动当前读...

2018-06-24 23:50:03

阅读数 1422

评论数 0

5-文件I/O—read/write函数

1. 文件I/O—read函数   在linux系统中最常用,基本的读写文件I/O的系统调用就是read函数和write函数。   read函数表示从fd指向的文件中读取cont个字节的数据。 函数原型: #include&a...

2018-06-24 23:44:58

阅读数 99

评论数 0

3-文件描述符和标准文件

1. 文件描述符   在linux系统中有这么一句话:“一切皆文件”,而这些文件又分为:普通文件、目录文件、符号链接文件和设备文件等。对于内核来说,所有打开的文件都通过文件描述符(file descriptor)来进行管理引用,文件描述符是一个非负整数,当打开一个文件或新建一个文件时,内核会向进...

2018-06-24 23:41:43

阅读数 475

评论数 0

2-C标准的I/O缓存和FILE结构体

1. C标准库文件IO函数   在前面学习C语言基础的文件IO中的fread , fwrite , fopen , fclose , fgets , fputs等这些函数都是C标准的文件IO函数,这些函数都是针对标准的输入,输出。因为这些库函数是建立在系统调用的基础之上的,比如:fread函...

2018-06-24 23:39:46

阅读数 92

评论数 0

1-文件IO—open/close函数

1. open函数   通过open系统调用可以打开一个文件并返回该文件的文件描述符,同理,close系统调用可以通过文件描述符关闭一个文件。 函数原型: <unistd.h&a...

2018-06-24 23:37:44

阅读数 86

评论数 0

4-文件描述符与打开的文件之间的关系

1. 标准文件的文件描述符 标准文件描述符如图1所示: 图1-标准文件的文件描述符 文件描述与打开的文件对应模型如图2所示: 图2   在一个进程中,存在着一个大数组记录了打开的文件,而数组的索引号就是open函数返回的整数,这个数组中的每一项记录了打开的文件信息。 3. ...

2018-06-23 23:29:52

阅读数 87

评论数 0

9-dentry结构体和inode结构体

1. dentry结构体   dentry是一个目录项(Directory entry),相当于一个文件目录,该文件目录里面有很多文件。其实本质就是一个dir_entry结构体,重要成员有文件的inode索引号,文件名等,存储着文件的信息。 dentry结构体相关信息: struct ex...

2018-06-23 23:27:10

阅读数 159

评论数 0

8-linux ext2文件系统实验

  由于ext2文件系统太过于抽象和理论,此实验的目的是帮助加深理解ext2文件系统的原理,对linux下的文件系统的索引过程建立一个基本的认识,从而在ext2的基础上更加深入的学习linux文件系统。 1. 预备知识 ext2文件系统,结构体对齐,十六进制转换 3. 文件定位过程 在...

2018-06-23 23:26:04

阅读数 160

评论数 0

7-linux ext2文件系统

1. linux文件系统   文件系统(file system)是一组规则,规定对文件的存储及读写的一般方法。linux最传统的磁盘文件系统使用的是ext2,相比ext3,ext4来说,ext2要简单一些,所以要学习文件系统应该从ext2开始。关于ext3和ext4,是对ext2的基础上扩展的一...

2018-06-23 23:25:17

阅读数 77

评论数 0

33-串的链式存储结构和基本操作

1. 串的链式存储结构   串的链式存储结构与线性表是相似的,但是在链式存储结构中每个节点的数据域可以是一个字符,或者多个字符。如果每个节点的数据域是以一个字符存储的话,由于内存对齐的的影响下,链串的存储密度较小,因此会存在浪费。   如果每个节点的数据域是以四个字符存储的话,链串的存...

2018-06-22 20:10:03

阅读数 526

评论数 0

7-网络设备和分层

1. 分层   在现在的计算机网络中,都是需要依靠网络设备来进行网络通信的,通过参照OSI通信模型将计算机通信进程划分层,然后根据网络设备在计算机通信过程中的作用,我们可以知道不同的网络设备工作在不同的层。 网络设备   比如我们最常见的网络设备:路由器和交换机,集线器等。   对于路...

2018-06-22 00:20:44

阅读数 213

评论数 0

32-串的基本概念和操作

1. 串的基本概念 平常我们说讨论的字符串就简称为“串”,是由零个或多个字符组成的有穷序列。 串中的字符可以是数字,字母,其他字符等,串中的字符个数称为串的长度 对于零个字符的串通常称为空串,空串的长度为0,一般是用Ф符号表示 在表示一个串时,通常记为s = “a1a2……an”的形式,每...

2018-06-20 21:30:46

阅读数 360

评论数 0

19-循环链表基本运算实现

1. 循环链表的抽象数据类型(ADT) 循环链表——ADT ADT List { 数据对象: D = {ai | ai∈ElemType, i=1,2,…,n, n≧0 } //ElemType为类型标识符 数据关系: R = {&...

2018-06-20 10:55:45

阅读数 150

评论数 0

31-链式队列的基本操作实现

LinkQueue.h文件 #ifndef LINKQUEUE_H #define LINKQUEUE_H #include <stdio.h> #include <stdli...

2018-06-19 20:43:06

阅读数 49

评论数 0

30-链式队列的基本操作

1. 链式队列   链式队列的本质其实是一个存储队列元素的单链表,在链式队列中维护了两个指向队头和队尾的连队节点。 2. 链式队列的存储结构   既然链式队列本质是单链表,那么可以根据单链表和队列的特性来定义链式队列的存储结构,比如链表的节点有一个数据域用于存储数据,还有一样指针指向...

2018-06-19 20:42:39

阅读数 104

评论数 0

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