memory-mapping

    1热度

    1回答

    我使用VirtualQuery识别进程的虚拟内存部分。我确定映射文件(MEM_MAPPED)占用的区域,但是如何确定在那里分配的文件的实际文件(文件名)?我认为它与MapView *系列API有关,但无法准确地确定它...

    6热度

    3回答

    我有一些我想模拟的硬件;我想知道我是否可以在这样的低水平上做到这一点。硬件有许多寄存器,这是我在一个结构安排: #include <stdint.h> struct MyControlStruct { uint32_t data_reg_1; uint32_t data_reg_2; uint32_t dummy[2]; // to make the follow

    10热度

    1回答

    可以概括说明:如何为Java中大于2GB的内存映射文件实现方法byte[] get(offset, length)。 随着背景: 我试图有效地读取是大于2GB随机I/O文件。当然,这个想法是使用Java nio和内存映射API。 问题出在内存映射的限制2GB。其中一个解决方案是通过偏移量映射多个2GB页面和索引。 有一个类似的解决方案在这里: Binary search in a sorted (

    0热度

    1回答

    这是我的第一个问题:)。 我一直试图趁现在身体内存在VxWorks的6.8,但没有成功映射到虚拟内存, 我试图用“的VMMap”功能,但不知何故,它不断与回报: 错误号= 0x30065 S_taskLib_NAME_NOT_FOUND 。 我的代码是: int page_size=0; PHYS_ADDR GPIO_BASE_VIRTUAL_ADDR = 0x40E00000; VIRT_A

    2热度

    3回答

    我试图使用内存映射文件为: hFile = ::CreateFile(State.Path, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN, 0);//open the file if(hFile !=INVALID_HANDLE_

    -1热度

    1回答

    在C程序中,我得到了2个程序,一个用于在共享内存中存储字符串,另一个程序是通过访问共享内存来打印相同的字符串。 program 1-> printf("\n SENDER ADDRESS"); printf("\nTHE ADDRESS IS %p",addr1); printf("\nENTER THE MESSAGE:"); scanf("%s",addr1); printf

    2热度

    2回答

    我有一个结构,我想导出到一个文件,然后mmap()该文件。一个问题是,该结构有一个字符串的成员变量,我不知道如何mmap将处理。在这种情况下,所有这些字符串都是相同的大小,8个字符。我正在使用Windows,但我使用的是我在网上找到的mmap()函数,它应该复制Linux mmap()函数。 的结构本身被定义为: struct testStruct { string testStrin

    0热度

    1回答

    我正在寻找从32位XP到64位Win7及更高版本的各种Windows版本的特定硬件I/O地址的接口方式。在不同的Windows版本下,似乎有不同程度的功能发布了各种解决方案,我试图了解创建自己的内核驱动程序的可能性。最基本的内核I/O R/W功能似乎是直接I/O操作,如READ_PORT_UCHAR和WRITE_PORT_UCHAR(及其字和长导数)。我也看到the technique below

    5热度

    3回答

    我已经写几个程序,结果发现,在64位的编译时,所述存储器映射段(为共享对象)的地址,存储器映射段(其中,例如,共享对象和共享存储器被保持)是总是位于7f9aca84a000-7fff88400000附近,但从未完全相同。 我想知道是否有一个固定的起始地址x86_64体系(ELF64)这个内存段或最大和最小范围这部分是什么? 这就是为什么我问这个问题。我们正在将一个系统从Tru64 UNIX迁移到L

    2热度

    1回答

    假设一个设备有一个寄存器,并且CPU具有类似x86的体系结构。该寄存器映射到物理地址0x50000。 处理器将0X00ABCDEF写入0x50000(phys。)。如果我能够通过 “打开”一个RAM银行检查该地址,我应该找到什么? 0X00ABCDEF或垃圾? 我假设设备的寄存器已经有0X00ABCDEF了。请纠正我,如果我错了。