linux共享内存的定义,共享内存是什么意思 Linux系统如何共享内存
共享內存概念
共享內存是通信效率最高的IPC方式,因為進程可以直接讀寫內存,而無需進行數據的拷備。但是它沒有自帶同步機制,需要配合信號量等方式來進行同步。
共享內存被創建以后,同一塊物理內存被映射到了多個進程地址空間,當有一個進程修改了共享內存的數據,其余的進程均可看見所修改的內容,反之亦然。
mmap函數
函數原型:
voidmmap(voidadrr,size_tlength,intprot,intflags,intfd,off_toffset);
返回值:
成功:返回創建的映射區首地址;
失敗:返回MAP_FAILED
具體參數含義:
addr:指向映射區的首地址,這是由系統內核所決定的,一般設為NULL;
length:欲創建的映射區大小;
prot:映射區的權限,一般有如下幾種:
PROT_EXEC 映射區域可被執行
PROT_READ 映射區域可被讀取
PROT_WRITE 映射區域可被寫入
PROT_NONE 映射區域不能存取
flags:指映射區的標志位,MAP_FIXED與MAP_PRIVATE必須選擇一個:
MAP_FIXED:對映射區所作的修改會反映到物理設備,但需要調用msync()或者munmap();
MAP_PRIVATE:對映射區所作的修改不會反映到物理設備。
fd:創建的映射區的文件描述符;
offset:被映射文件的偏移量,一般設為0,表示從頭開始映射。
總結
以上是生活随笔為你收集整理的linux共享内存的定义,共享内存是什么意思 Linux系统如何共享内存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++byte数组和文件的相互转换_终于
- 下一篇: gpt efi win7 linux,科