mmap

    0热度

    1回答

    分段故障只是为了了解事情是如何工作的,我想分配从内核的某些内存mmap,然后设置保护位,使得任何存储器存取导致分段故障,之后我想尝试设置保护位以使分段故障不再发生。 到的mprotect调用失败,并在si_addr地址是错误的,即使对于sigaction Linux手册页说,siginfo结构的si_addr函数包含导致错误的地址。并且地址不是在main()函数中分配的地址。 的代码工作正常在Ma

    3热度

    1回答

    我正在为嵌入式系统开发一个linux内核模块。 该系统包含可编程逻辑(PL),需要从用户空间进程进行访问。 PL可以在运行时改变。 我的模块允许进程访问指定的hw寄存器和页面。 这些映射在我的模块的configfs绑定中配置(在运行时)。 每个映射都在configfs中可以访问它的条目。 我想允许进程mmap整个页面,以便他们能够直接与PL通信。 但configfs不支持mmap。 有没有原因?

    0热度

    1回答

    这里的问题是,我想我们的投票是93. 我希望变量被所有线程共享。就像一个静态变量对所有对象都是通用的,我想要一个变量对所有线程都通用。 #include <stdio.h> #include <stdlib.h> #include <sys/mman.h> #include <sys/types.h> #include <sys/wait.h> #include <unistd.h>

    0热度

    1回答

    我试图通过寄存器设置访问MT7620n的GPIO。到目前为止,我可以通过使用/ sys/class/gpio/...来访问它们,但这对我来说还不够快。 在MT7620第84页的编程指南中,您可以看到GPIO基址为0x10000600,单寄存器的偏移量为4字节。 MT7620 Programming Guide 喜欢的东西: devmem 0x10000600 从壳工作绝对没问题,但我不能从C PR

    3热度

    1回答

    我想了解为什么调用写入内存保护区域时不会触发sigsegv。请看例子: void *map_addr; unsigned long addr; map_addr = (void *)mmap(NULL, 0x4000, PROT_READ_WRITE, MAP_PRIVATE, fd, 0); mprotect(map_addr, 0x4000, PROT_NONE); addr =

    0热度

    1回答

    我已经使用MappedByteBuffer编写了一个简单的平坦哈希表(基于字节[])。但是,我经历过,如果我在内存中构建散列表,然后将byte [] - 数组写入MappedByteBuffer,速度会更快。 因此,它看起来像随机写入性能很烂,因为操作系统经常刷新并且页面被修改了很多次。有没有办法推迟页面的冲洗? foobar的

    -3热度

    2回答

    我正在尝试读取C文件中的大型.txt文件。我用fgets()完成了一个版本,但性能受I/O限制。所以我需要别的可以比fgets()更好的性能,并且我发现mmap()不会被I/O所限制。所以我的问题是,是否有可能通过mmap()和多线程(POSIX Thread)来实现? 这里是我所需要的: Different threads to read(mmap() or something else) di

    1热度

    1回答

    我检查了2种方法来读取使用Python /用Cython二进制文件: 第一种是使用mmap和struct.unpack模块: import mmap import os import struct fd = os.open(filePath, os.O_RDONLY) mmap_file = mmap.mmap(fd, length=24, access=mmap.ACCESS_REA

    0热度

    1回答

    我试图用ioctl(FD,FBIOPAN_DISPLAY ... 我一个缓冲区代码工作正常,以实现双缓冲失败 screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel/8; fbp = (char*)mmap(0, screensize, PROT_READ | PROT_WRITE, MAP_SHARED, fbfd, 0);

    0热度

    1回答

    我的程序正在使用巨大的页面。这样做,它打开的文件如下: oflags = O_RDWR | O_CREAT | O_TRUNC; fd = open(filename, oflag, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); 凡filename在hugetlb文件系统。 这是有效的。然后我的程序可以mmap()创建的文件描述符。但是,如果我的程序就会被杀