進(jìn)程間通信之: 共享內(nèi)存
下面是運(yùn)行結(jié)果。從該結(jié)果可以看出,nattch的值隨著共享內(nèi)存狀態(tài)的變化而變化,共享內(nèi)存的值根據(jù)不同的系統(tǒng)會有所不同。
$./shmem
Createshared-memory:753665
/*在剛創(chuàng)建共享內(nèi)存時(shí)(尚未有任何地址映射)共享內(nèi)存的情況*/
------SharedMemorySegments--------
keyshmidownerpermsbytesnattchstatus
0x00000000753665david66620480
Child:Attachshared-memory:0xb7f59000/*共享內(nèi)存的映射地址*/
Parent:Attachshared-memory:0xb7f59000
/*在父子進(jìn)程中進(jìn)行共享內(nèi)存的地址映射之后共享內(nèi)存的情況*/
------SharedMemorySegments--------
keyshmidownerpermsbytesnattchstatus
0x00000000753665david66620482
Child:Waitforenabledata...
Inputsomestring:
Hello/*用戶輸入字符串“Hello”*/
Parent:Deattachshared-memory
/*在父進(jìn)程中解除共享內(nèi)存的映射關(guān)系之后共享內(nèi)存的情況*/
------SharedMemorySegments--------
keyshmidownerpermsbytesnattchstatus
0x00000000753665david66620481
/*在子進(jìn)程中讀取共享內(nèi)存的有效數(shù)據(jù)并打印*/
Child:Shared-memory:hello
Child:Deattachshared-memory
/*在子進(jìn)程中解除共享內(nèi)存的映射關(guān)系之后共享內(nèi)存的情況*/
------SharedMemorySegments--------
keyshmidownerpermsbytesnattchstatus
0x00000000753665david66620480
Deleteshared-memory
/*在刪除共享內(nèi)存之后共享內(nèi)存的情況*/
------SharedMemorySegments--------
keyshmidownerpermsbytesnattchstatus
Finished
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論