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()創建的文件描述符。但是,如果我的程序就會被殺