【Linux 內核 內存管理】內存管理系統調用 ⑤ ( 代碼示例 | 多進程共享 mmap 內存映射示例 )
文章目錄
一、進程一描述
二、進程二描述
三、mmap 進程共享內存展示
一、進程一描述
在上一篇博客 【linux 內核 內存管理】內存管理系統調用 ④ ( 代碼示例 | mmap 創建內存映射 | munmap 刪除內存映射 ) 中 , 完成了 進程一 的程序 ,
在該進程中 ,
創建并打開文件 ,
為該文件設置大小 ,
使用 mmap 創建 " 文件映射 " ,
并通過直接訪問內存的方式 , 為該文件設置數據 ;
數據設置完畢后 , 休眠 8 8 8 秒 , 在這段休眠的時間段 , 運行
進程二
, 在 進程二中 ,
創建相同文件的 mmap " 文件映射 " ,
讀取在 進程一 中寫入的文件內容 ;
二、進程二描述
進程二 的源碼 , 與上一篇博客 【linux 內核 內存管理】內存管理系統調用 ④ ( 代碼示例 | mmap 創建內存映射 | munmap 刪除內存映射 ) 中 進程一 源碼類似 , 只是將寫入 mmap 文件映射 數據 , 修改為 讀取 該 文件映射 數據 , 并打印出來 , 源碼如下 :
#include
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
上述源碼 , 放在 mmap_demo_02.c 文件中 , 執行
gcc mmap_demo_02.c -o mmap_demo_02
1
命令 , 編譯該源碼 , 編譯出的可執行文件為 mmap_demo_02 ;
三、mmap 進程共享內存展示
先執行 進程一 mmap_demo_01 可執行程序 , 進程一 中通過 mmap 文件映射向文件中寫出數據后 , 進入休眠階段 ,
再執行進程二 mmap_demo_02 , 使用 mmap 文件映射訪問 file 文件 , 此時打印出 進程一 中通過 mmap 文件映射寫出的文件數據 ;
Linux 任務調度 項目管理 ProjectMan
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。