mmap

    7熱度

    1回答

    我試圖將程序代碼放入並執行到共享內存區域中。初始化和分配共享內存以及將shellcode複製到「新」內存中的工作如預期的那樣,但只要我嘗試執行它,它就不起作用。有沒有人有一個想法可能是什麼問題? 我認爲write(1, 0x6000d8, 13) = -1 EFAULT (Bad address)可能是錯誤的?什麼可能導致這種情況? 我包含代碼和stract錯誤輸出。 C碼基於this Quest

    0熱度

    1回答

    我想在Linux 3.13上使用內存映射文件的巨大頁面。 要開始,在Ubuntu我這樣做是撥出10個大內存頁: sudo apt-get install hugepages sudo hugeadm --pool-pages-min=2048K:10 然後我跑這個測試程序: #include <assert.h> #include <fcntl.h> #include <stdio.h>

    1熱度

    1回答

    我正在嘗試編寫一個程序,使進程能夠通過共享內存區進行通信。 我使用的代碼如下: struct shared { int a; char *f; } int main() { struct shared *f = (struct shared *) mmap(NULL, sizeof(struct shared), PROT_READ | PROT_WRITE,

    0熱度

    1回答

    我有一個關於Linux中的mmap文件(Ubuntu 14具體)的問題。 我們在主機上運行DSE/DSE SOLR,我們看到一些文件隨機消失。它看起來像應用程序開始構建索引時創建了一堆mmap文件,並在繼續構建索引時使用它們。查看/ proc/$ {dse_pid}/map_files我看到一堆指向(刪除)文件的符號鏈接。在我們的日誌中,我們看到的東西像 錯誤[HTTP-8983-EXEC-5]

    1熱度

    2回答

    [email protected] Mmap()系統調用中的x/sys/unixpackage返回[]byte類型,而底層的系統調用實際上返回一個指針。它是如何做到的? 更具體地說,在由Golang開發人員編寫的this包中,VirtualAlloc函數只是返回一個指針。如何將它轉換爲字節片,就像在Unix軟件包中一樣?

    1熱度

    1回答

    我正在創建一個「每進程一個進程」服務器使用TCP協議進行學術目的。 我用一個全球性的結構像一個波紋管: struct keyvalue { char a[4096]; char b[4096]; }data[1000]; 我使用fork()創建子爲每個客戶端。 我知道每個孩子都會將此結構視爲父進程的精確副本,但是如果孩子進行更改,則其他孩子不可見,這

    0熱度

    1回答

    我有一個代碼在重新映射之前使用MapViewOfFile和FlushViewOfFile寫入文件。 和我有一個第二代碼,即從相同的文件中讀取(在磁盤上,而不是HANDLE /映射對象)在同一進程中的其他線程使用MapViewOfFile。 的視圖的標誌是PAGE_READONLY/FILE_READ和PAGE_READWRITE/FILE_WRITE。 在我的電腦上,一切正常。 但當相同的構建與其

    -1熱度

    1回答

    我有一個打印出樹的函數printtree。 我在互聯網上的很多地方搜索過,我發現mmap是分配內存並寫入文件的好方法。 我想使用mmap將printtree的內容打印到文件中。我第一次學習mmap,我不知道該怎麼做。 printtree()如下: void printtree(struct Node *root, int indent) { int i; if(root != NU

    -1熱度

    1回答

    我試圖港口一些Linux C++到Windows,並停留在這樣一行 void* ptr = mmap(NULL, sz, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); 這是我發現了一種方法可以動態地分配一些內存文件描述符爲-1。 如何在Windows中執行此操作?我無法找到MapViewOfFile沒有文件處理程序的文

    9熱度

    1回答

    是否有可能 - 如果這麼謹慎 - 使用sendfile()(或其Darwin/BSD表親fcopyfile())直接在共享內存映射對象內存對象和文件? 像sendfile()和fcopyfile()功能可以執行所有的機械必需品託換數據的這種轉移的完全不留內核空間 - 你沿着兩個打開的描述,源和目的傳球,調用這些函數時,他們把它從那裏。 複製數據的其他方式總是需要一個手動操作跨越內核空間和用戶空間之