两种文件修改的方式
来源:互联网 发布:假面骑士空我 知乎 编辑:程序博客网 时间:2024/05/21 06:19
一、文件映射
不得不说利用文件映射对文件进行读写操作是非常方便的,因为可以像操作内存一样使用指针读写任意内容,前提是要将安全属性置为可读可写。利用文件映射进行写操作时内存和文件时同步的,修改内存内容的同时也会修改文件内容。
使用内存映射文件读写文件的具体过程可以这样:
(1)调用CreateFile函数打开想要映射的文件,得到文件句柄hFile。该函数是没有文件时创建问件,有文件时创建问件
(2)调用CreateFileMapping函数,并传入文件句柄hFile,为该文件创建一个内存映射内核对象,得到内存映射文件的句柄hMap。
(3)调用MapViewOfFile函数映射整个文件或一部分到进程的虚拟地址空间。该函数返回文件映射到内存后的起始地址。使用指向这个地址的指针就可以读取文件的内容了。调试时可以在内存窗口看一下内容。
(4)调用UnmapViewOfFile函数来解除文件映射。
(5)调用CloseHandle函数关闭文件对象,必须传入内存映射文件句柄hMap
(6)调用CloseHandle函数关闭文件对象,必须传入文件句柄hFile。
二、文件指针
- 要用到的函数
_open、_lseek、_write,_read和_close - 函数的说明
- _open
根据文件名打开文件,返回int型的文件句柄,也就是文件描述符。文件描述符是系统内核中文件索引 - _lseek
传入_open返回的int型文件描述符和文件偏移,将文件指针定位到偏移处 - _read
传入文件描述符和字符串指针以及读取内容大小,将读取的内容写进字符串指针指向的字符串中 - _write
传入文件描述符以及源串指针和要写入的长度,写入位置为经由_lseek设置的文件指针定位的地方 - _close
传入文件描述符,关闭文件句柄
- _open
- 函数使用:
上述几个函数搭配使用,很简单。但和文件映射相比,想要查看文件内容的话必须创建字符串来接受文件内容。
三、参考资料
- http://blog.csdn.net/marryshi/article/details/40888865
- MSDN
阅读全文
0 0
- 两种文件修改的方式
- 通过文件修改注册表的两种方式
- [oracle]初始化参数文件spfile、pfile及修改参数的两种方式
- Android调用Linux命令修改文件权限的两种实现方式
- jsp包含文件的两种方式
- 文件I/O的两种方式
- java 选择文件的两种方式
- 两种保存位图文件的方式
- 文件下载的两种方式
- 资源文件的两种读取方式
- springMVC上传文件的两种方式
- C#文件操作的两种方式
- 加载xib文件的两种方式
- Java文件上传的两种方式
- springMVC 的两种文件上传方式
- 文件下载的两种方式
- 生成签名文件的两种方式
- FTP传输文件的两种方式
- ESP8266调试-P2P(AP模块与STA模块通信)
- JVM——自定义类加载器
- Eclipse新建maven工程出错:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstar
- 内存屏障(还得补)
- dwr+maven实现java和js方法互相调用,实现推送, 完整切超简单例子
- 两种文件修改的方式
- Android自定义View之属性
- Oracle12C--系统触发器(58)
- java 基础三
- 2017年9月24笔记
- Oracle12C--管理触发器(59)
- php中常用的字符串获取函数mb_strcut实例解释
- 谷歌和火狐浏览器下的input的padding不同表现
- 欢迎使用CSDN-markdown编辑器