[英]What is the functionality of munmap, mmap
它將磁盤緩存的大塊映射到進程空間,以便可以在字節級別上操作映射的文件,而不需要使用read()
, write()
等方法使應用程序通過VFS。
mmap()
是系統調用,可幫助進行內存映射的I / O操作。 它分配一個內存區域並將其映射到調用進程虛擬地址空間,以使應用程序能夠訪問內存。
mmap()
返回指向映射區域的指針,該指針可用於訪問內存。
同樣, munmap()
刪除映射,因此對分配的內存的進一步訪問不再合法。
這些是較低級別的調用,其行為與較高級別上的內存分配器函數(如malloc()
/ free()
所提供的類似。 但是,此系統調用允許對分配的區域行為進行精細控制,例如,
MAP_FIXED
標志) MAP_UNINITIALIZED
標志) 等等
如果您認為其他措詞可以幫助您,也可以參考Wikipedia文章 。
手冊很清楚:
mmap()在調用進程的虛擬地址空間中創建一個新的映射
簡而言之,它將大塊文件/設備內存/任何內容映射到進程的空間,以便僅通過訪問內存就可以直接訪問內容。
例如:
fd = open("xxx", O_RDONLY);
mem = mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0);
將文件的內容映射到mem
,讀取mem
就像讀取文件xxx
的內容一樣。
如果fd
是某些FPGA的設備存儲器,則mem
成為FPGA內容的內容。
在某些情況下使用非常方便且高效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.