社区
工具平台和程序库
帖子详情
内存映射或者内存管理
lovewith
2003-11-20 12:27:55
这个程序怎么写
1。把缓冲的信息准实时写到内存中,然后写到磁盘文件中。
2 磁盘文件中的数据恢复到内存中
...全文
68
16
打赏
收藏
内存映射或者内存管理
这个程序怎么写 1。把缓冲的信息准实时写到内存中,然后写到磁盘文件中。 2 磁盘文件中的数据恢复到内存中
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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()
{
}
5.
内存管理
、
内存映射
的建立与解除、系统调用
内存管理
、
内存映射
Linux
内存管理
(3):单页内存和非连续多页
内存映射
(基于分页映射)
持久内核映射、临时内核映射/固定内核映射、非连续
内存管理
内存管理
专题02
内存映射
原理
内存管理
专题,
内存映射
原理
【Linux 内核
内存管理
】
内存管理
系统调用 ① ( mmap 创建
内存映射
| munmap 删除
内存映射
| mprotect 设置虚拟内存区域访问权限 )
一、mmap 创建
内存映射
、 二、munmap 删除
内存映射
、 三、mprotect 设置虚拟内存区域访问权限、
内存映射
Linux的
内存映射
在讲解
内存映射
之前,不得不去探讨Linux
内存管理
方面的知识。需要说明的是,我们并不需要深入的理解Linux虚拟内存才能去实现Linux的
内存映射
,所以对于Linux
内存管理
方面的知识也仅限于最基础的概念。 一、Linux的
内存管理
Linux的
内存管理
子系统是采用请求调页式的虚拟存储器技术实现的,有关虚拟存储器方面的知识可以参考《深入理解计算机系统》第二版
工具平台和程序库
24,852
社区成员
27,352
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章