社区
工具平台和程序库
帖子详情
内存映射或者内存管理
lovewith
2003-11-20 12:27:55
这个程序怎么写
1。把缓冲的信息准实时写到内存中,然后写到磁盘文件中。
2 磁盘文件中的数据恢复到内存中
...全文
80
16
打赏
收藏
内存映射或者内存管理
这个程序怎么写 1。把缓冲的信息准实时写到内存中,然后写到磁盘文件中。 2 磁盘文件中的数据恢复到内存中
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ahao
2003-12-03
打赏
举报
回复
1 setfilepointer针对2的64次方字节,这个足够了吧:)
2 那个文件一定已经在了,否则createfile中用open_exist参数,
如果文件不在,这个函数就会失败。
ahao
2003-12-03
打赏
举报
回复
把数据放入内存的同时写磁盘就可以了,但最好想其他的设计吧,你这样做不一定是好方法。
lovewith
2003-11-29
打赏
举报
回复
#include "list"
#include "string"
#include "windows.h"
#include "iostream"
using namespace std;
typedef struct SM
{
SM(int i){
accout[0]='\0';
sprintf(accout,"A%d",i);
num = i;
}
char accout[20];
int num;
}A;
list<A *> aList;
list<A *>::iterator j;
int main()
{
int i=0;
A a[8] = {A(1),A(2),A(3),A(4),A(5),A(6),A(7),A(8)};
memset(a,0,sizeof(A)*8);
for(i=0;i<8;i++)
{
aList.push_back(&a[i]);
}
HANDLE hFile=CreateFile("Recv1.zip",GENERIC_WRITE|GENERIC_READ,FILE_SHARE_READ,NULL,CREATE_ALWAYS,FILE_FLAG_SEQUENTIAL_SCAN,NULL);
HANDLE hFileMapping = CreateFileMapping(hFile,NULL,PAGE_READWRITE,
0, 0x4000000, NULL);
//CloseHandle(hFile);
// É趨´óС¡¢Æ«ÒÆÁ¿µÈ²ÎÊý
//__int64 qwFileSize = 0x4000000;
__int64 qwFileOffset = 0;
//__int64 T = 600 ;
DWORD dwBytesInBlock = 1000;
// ½«ÎļþÊý¾ÝÓ³Éäµ½½ø³ÌµÄµØÖ·¿Õ¼ä
PBYTE pbFile = (PBYTE)MapViewOfFile(hFileMapping,
FILE_MAP_ALL_ACCESS,
(DWORD)(qwFileOffset>>32), (DWORD)(qwFileOffset&0xFFFFFFFF), dwBytesInBlock);
//nReadLen=syio_Read(port[1], pbFile + qwFileOffset, QueueLen);
//qwFileOffset += nReadLen;
unsigned long nWritten = -1;
for(j=aList.begin();j!=aList.end();++j)
{
WriteFile(hFileMapping,&(*j),sizeof(*j),&nWritten,NULL);
}
UnmapViewOfFile(pbFile);
CloseHandle(hFileMapping);
CloseHandle(hFile);
//DeleteFile("Recv1.zip");
return 0;
}
我的程序写不进去
lovewith
2003-11-29
打赏
举报
回复
不要用MFC,比如不断写一些字符串到内存中去.再写到磁盘中去.
lovewith
2003-11-29
打赏
举报
回复
_strlwr( (char*)(pbFile+qwFileOffset));此句话是什么意思
flyccloud
2003-11-29
打赏
举报
回复
up
bluebohe
2003-11-29
打赏
举报
回复
#include "stdafx.h"
#include "windows.h"
int main(int argc, char* argv[])
{
HANDLE hFile = CreateFile("J:\\a.txt",
GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_ALWAYS,
FILE_FLAG_SEQUENTIAL_SCAN,
NULL);
int iLen=GetFileSize(hFile,NULL)+1;
HANDLE hFileMapping = CreateFileMapping(hFile,NULL,PAGE_READWRITE, 0, iLen, NULL);
// 释放文件内核对象
CloseHandle(hFile);
__int64 qwFileOffset = 0;
PBYTE pbFile = (PBYTE)MapViewOfFile(hFileMapping,FILE_MAP_ALL_ACCESS,
(DWORD)(qwFileOffset>>32), (DWORD)(qwFileOffset&0xFFFFFFFF), iLen);
_strlwr( (char*)(pbFile+qwFileOffset));
UnmapViewOfFile(pbFile);
CloseHandle(hFileMapping);
return 0;
}
lovewith
2003-11-29
打赏
举报
回复
有但不能写进去啊我试了不行,不知你试了没有。
mechgoukiteng
2003-11-25
打赏
举报
回复
这个问题
《windows核心编程>关于内存映射那一部分说的非常清楚
xujunfeng008
2003-11-25
打赏
举报
回复
把数据用字节传入传去不就行了??
fierygnu
2003-11-20
打赏
举报
回复
问题不清楚,是不是要类似swap的功能?
1、用定时器
2、读入不行?
lovewith
2003-11-20
打赏
举报
回复
问题不清楚,是不是要类似swap的功能?
1、用定时器
2、读入不行?
1。把缓冲(一个窗口大小比如5条)的信息准实时写到内存中,然后写到磁盘文件中。
2。当出现问题时。磁盘文件中的数据恢复到内存中
以上做法是为了防止
当把缓冲中的数据发送到消息队列中。但是当出现故障时,防止未发送的数据丢失。这样定义一个定时器,定时地往内存写再写到磁盘文件中。这样不会出现数据丢失或者很少。因为可以从磁盘中读取到缓冲中
不知那位有相关的程序
zhouqingyuan
2003-11-20
打赏
举报
回复
什么意思?
goodboyyxh
2003-11-20
打赏
举报
回复
char szPathName[500];
memset(szPathName, 0, 500);
GetCurrentDirectory(500, szPathName);
strcat(szPathName, "\\MonitorLogFile\\SS7RunInfo.log");
if(pRunInfoFile == NULL)
{
pRunInfoFile = fopen(szPathName, "a+t");
if(pRunInfoFile == NULL)
return FALSE;
}
fseek(pRunInfoFile, 0, SEEK_END);
fprintf(pRunInfoFile, "%s\n", lpStr);
if(fflush(pRunInfoFile) == EOF)
return FALSE;
return TRUE;
双杯献酒
2003-11-20
打赏
举报
回复
不清楚您要什么。
goodboyyxh
2003-11-20
打赏
举报
回复
OnTimer()
{
}
查看内存使用情况的汇编源代码
查看内存使用情况的汇编源代码
一个TSR程序作出DOS下的屏幕保护程序
一个TSR程序作出DOS下的屏幕保护程序
内存管理
、
内存映射
mmap、java
内存映射
MMU:Memory Management Unit,
内存管理
单元,CPU中独立硬件,负责处理CPU的内存访问请求。虚拟地址到物理地址的转换(即虚拟
内存管理
)。物理内存:真实存在的插在主板内存槽上的内存条,提供临时储存。虚拟内存:计算机系统
内存管理
的一种技术。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上物理内存通常被分隔成多个内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。页面文件:操作系统反映构建并使用虚拟内存的硬盘空间大小而创建的文件。
内存映射
文件原理
内存映射
文件
内存映射
文件与虚拟内存的区别映射原理mmap() 函数mmap基础概念mmap映射原理mmap优点mmap相关函数
内存映射
文件与虚拟内存的区别
内存映射
文件是由操作系统支持的一种文件处理方式,通过文件映射,让用户处理磁盘文件时就如同操作内存一样。再处理大文件时,效率比传统IO高很多。 虚拟内存和
内存映射
文件都是将一部分文件加载到内存,另一部分文件保存在磁盘上的一种机制。但是二者是有区别的: 架构不同,虚拟内存是构建在物理内存之上的,引入原因是实际物理内存无法满足程序所需的内存空间;内
操作系统——
内存映射
文件
内存映射
文件 1.定义:
内存映射
文件,是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。
内存映射
文件与虚拟内存有些类似,通过
内存映射
文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行操作之前必须首先对文件进行映射。使用
内存映射
文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,使得
内存映射
文件在处理大数据量的文件时能起到相当重要的作用
工具平台和程序库
24,857
社区成员
27,330
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章