mmap

    3熱度

    1回答

    以下哪種調用平均速度更快?我聽說mmap對於較小的分配速度更快,但我還沒有聽說過兩者之間的比較。任何關於這些表現的信息都會很好。

    1熱度

    1回答

    對於我的實現,我使用mmap爲進程間通信分配共享內存。在這個共享內存中,我初始化一個隊列(我將第一個和最後一個指針設置爲NULL)。 問題是如何將新項目推入隊列。通常我會用malloc分配我的'隊列項目結構'然後指向它,但我不能使用它,我可以嗎?我需要在共享內存中以某種方式分配它。我可能可以使用另一個mmap並將其推送到那裏,然後指向它,但它看起來不正確,因爲我必須多次這樣做。 這可以簡單地完成,

    2熱度

    1回答

    我有一個生產者進程,它寫入一個mmap'd文件和一個從中讀取的消費者進程。這是在Linux上。 如果生產者對mmap進行更改並且不立即刷新,當消費者訪問它時會發生什麼?它會從磁盤獲得舊版本,還是足夠聰明以獲得未刷新的頁面?

    2熱度

    1回答

    我試圖使用mmap讀取使用的1024 這裏塊是一個代碼片段文件.... numberOfBuffers = filesize/buffersize; if (filesize % buffersize) { numberOfBuffers++; } for (i = 0; i < numberOfBuffers; i++) { if((map = mmap(NULL

    2熱度

    1回答

    Linux內核新手問題。 MMAP狀態的人的頁面".. otherwise, it shall return a value of MAP_FAILED and set errno to indicate the error... " 我已經通過了下/usr/src/linux/mm/mmap.c MMAP內核代碼看了,但我找不到其中的mmap返回MAP_FAILED的地方。 任何人都可以指出我在

    4熱度

    2回答

    的mmap系統調用的文件說,如果該函數將失敗: MAP_FIXED被指定和地址 說法是不對齊的頁面,或部分所需的地址空間的 駐留 在 用戶進程的有效地址空間之外。 我找不到任何地方的文檔說什麼將是一個有效的地址映射。 (我有興趣在OS X和Linux上執行此操作,理想情況下,相同的地址對於這兩種操作都是有效的)。

    0熱度

    1回答

    int * const front = mmap(0, sizeof(int), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0); int * const back = mmap(0, sizeof(int), PROT_READ|PROT_WRITE|PROT_EXEC, MAP_SHARED|MAP_ANONYMOUS, -1

    6熱度

    1回答

    有沒有人成功地在Linux內核2.6中映射/ proc/pid/mem文件?我得到一個ENODEV(沒有這樣的設備)錯誤。我的電話是這樣的: char * map = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_SHARED, mem_fd, offset); 而且我通過查看在/ proc/PID/maps文件在調試時,當執行到該調用,偏移具有堆棧減去PAGE_S

    1熱度

    1回答

    評估變量/功能我有以下代碼, ... char* seg = mmap(0, ...) printf("seg=%x\n", seg); ... 該程序打印與seg=b7ffd000。而在gdb(執行相同)時,使用p/x seg時,它會打印$2 = 0x0。我很困惑。是不是一樣var seg?爲什麼值不同。 PS:在mmap中,第一個參數是映射內存的優先地址,返回值是映射內存的實際地址。

    1熱度

    2回答

    我有一個應用程序可以映射大量文件。 3000+左右。它也使用大約75個工作線程。該應用程序使用Java和C++混合編寫,Java服務器代碼通過JNI調用C++。 它經常雖然不是可預測的,但會耗盡文件描述符。我已經調升的/etc/security/limits.conf的限制: * hard nofile 131072 的/ proc/SYS/FS /文件-MAX是101752.該系統是一個的L