mmap

    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回答

    我需要在不同進程間交換一些變量,並通過共享內存嘗試此操作。以下代碼是此嘗試的簡化版本。該計劃按預期工作,但我想確保交流不僅因運氣而起作用。 我的主要問題是,是否足以將所有指針聲明爲volatile,以確保編譯器無法優化內存讀取?或者我需要插入一些額外的同步命令? #include <sys/mman.h> #include <iostream> #include <unistd.h> #in

    1熱度

    2回答

    上個學期我第一次做這個項目時,代碼工作正常。現在,當正在寫入進程之間共享的mmapped內存時,出現總線錯誤,我不知道爲什麼它不再工作。 Account_Info *mapData() { int fd; //open/create file with read and write permission and check return value if ((fd

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

    2熱度

    2回答

    地說,我已經下創建了一個共享的匿名內存映射,如一個實例: segment = mmap(NULL, (100) * sizeof(int)), PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0); 然後我做了叉。我可以從子進程更改共享內存的大小嗎?