之前写过一篇简单的介绍mmap()/munmap()的文章《Linux内存管理 (9)mmap》,比较单薄,这里详细的梳理一下。 从常用的使用者角度介绍两个函数的使用;然后重点是分析内核的实现流程;最后对mmap()/munmap()进行一些验证测试。 mmap系统调用并不完全是为了共享内存而设计的 ...
分类:
系统相关 时间:
2018-07-28 00:11:11
阅读次数:
792
前提:本文基于LInux系统的编程与学习 使用系统调用对文件进行操作。open(2) close(2) read(2) write(2) lseek(2) 文件描述符。进程 进程的本质是对程序执行的过程中,对计算机资源使用情况的描述。每个进程都有自己的pid。每个进程都有自己的户口本。户口本里记录了 ...
分类:
其他好文 时间:
2018-07-22 14:02:17
阅读次数:
192
一、lseek函数 每个打开文件都有一个与其相关联的“当前文件偏移量”。它通常是一个非负整数,用以度量从文件开始处 计算的字节数。通常,读、写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数。当打开一个文 件时,除非指定O_APPEND选项(调用open函数时使用了O_APPEND),否则 ...
分类:
系统相关 时间:
2018-06-20 00:08:04
阅读次数:
231
1、锁的应用场景 假设有一个文件a,它有1000个字节,一个进程A打开a文件并使用lseek定位到文件到末尾的位置,准备写50个字节,同时进程B也打开这个a文件进行和进程A同样的操作,那么文件最后的内容并不是1000+50+50个字节,而是1050,两个进程后写入的内容将会覆盖前面写的内容,那么如何 ...
分类:
其他好文 时间:
2018-05-03 23:26:55
阅读次数:
243
1.NFC基本概念: NFC 又称为近场通信,是一种新兴技术,可以在彼此靠近的情况下进行数据交换,是由非接触式射频识别(RFID) 及互连互通技术整合演变而来,通过单一芯片集成感应式读卡器; NFC有效通讯距离一般不超过10厘米,其传输速度有106 Kbit/秒、212 Kbit/秒或者424 Kb ...
分类:
其他好文 时间:
2018-04-04 15:07:59
阅读次数:
1085
竞争状态是这样一种情形:操作共享资源的两个进程(或线程),其结果取决于一个无法预期的顺序,即这些进程获得CPU使用权的先后相对顺序。 以独占的方式创建一个文件 当同时指定了O_EXCL和O_CREAT作为open的标志位时,如果要打开的文件已经存在,则open将返回一个错误。 这种机制为了保证进程是... ...
分类:
其他好文 时间:
2018-03-25 13:15:12
阅读次数:
169
需求:程序的第一个命令行参数为将要打开的文件名称,余下的参数则指定了文件上执行的输入输出操作。每个表示操作的参数都以一个字母开头,紧跟以相关值(中间无空格分隔)。 soffet:从文件开始检索到offset字节位置 rlength:在文件当前偏移量处,从文件中读取length字节数据,并以文本形式显... ...
分类:
其他好文 时间:
2018-03-25 10:38:31
阅读次数:
186
Unix系统中大多数文件I/O只需用到五个函数:open、read、write、lseek、close。本章说介绍的I/O是不带缓冲的,即:每个read和write都调用内核中的一个系统调用。不是ISO C的组成部分。对于内核而言,所有打开的文件都通过文件描述符引用。 在<unistd.h>中定义三 ...
分类:
其他好文 时间:
2018-02-24 15:37:08
阅读次数:
190
这篇文章我们将介绍Linux间进程通间信中的有名管道与无名管道。 一.无名管道 无名管道是一种特殊类型的文件,在内核中对应的资源即一段特殊内存空间,这段空间完全由操作系统管理和维护。可以使用read/write等函数进行读写操作,但不能使用lseek函数来修改当前的读写位置,因为管道需要满足FIFO ...
分类:
系统相关 时间:
2018-02-01 23:13:10
阅读次数:
311
20155317 《信息安全系统设计基础》第十三周周学习总结 一、UNIX I/O 在UNIX系统中有一个说法,一切皆文件。所有的I/O设备,如网络、磁盘都被模型化为文件,而所有的输入和输出都被当做对相应文件的读和写来执行。这种将设备映射为文件的方式,允许UNIX内核引出一个简单、低级的应用接口,称 ...
分类:
其他好文 时间:
2017-12-17 19:18:30
阅读次数:
257