日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 访问共享内存,Linux下的共享内存(03)---通过指针访问共享内存中的数据...

發(fā)布時(shí)間:2025/3/15 linux 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 访问共享内存,Linux下的共享内存(03)---通过指针访问共享内存中的数据... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

環(huán)境:Vmware Workstation;CentOS-6.4-x86_64

說明:

1、將共享內(nèi)存掛載至進(jìn)程:void? *shmat(int? shmid, const void *shmaddr,int shmflg);

參數(shù)shmid是要附加的共享內(nèi)存區(qū)標(biāo)示符。

總是把參數(shù)shmaddr設(shè)為0。

參數(shù)shmflg可以為SHM_RDONLY,這意味著附加段是只讀的。

shmat成功返回被附加了段的地址,失敗返回-1,并設(shè)置errno。

2、將附在共享內(nèi)存上的進(jìn)程分離:int shmdt(const void *shmaddr);

參數(shù)必須是掛在函數(shù)返回的指針。這個(gè)地址必須是shmat返回的。

圖解說明:

程序:

實(shí)現(xiàn)一個(gè)進(jìn)程修改共享內(nèi)存中的數(shù)據(jù),另一個(gè)進(jìn)程讀取共享內(nèi)存中的數(shù)據(jù)。

步驟:

1、創(chuàng)建并編寫makefile文件:

.SUFFIXES:.c .o

CC=gcc

SRCS1=main1.c

OBJS1=$(SRCS1:.c=.o)

EXEC1=main1

SRCS2=main2.c

OBJS2=$(SRCS2:.c=.o)

EXEC2=main2

start: $(OBJS1) $(OBJS2)

$(CC) -o $(EXEC1) $(OBJS1)

$(CC) -o $(EXEC2) $(OBJS2)

@echo "--------------------------OK------------------------"

.c.o:

$(CC) -Wall -o $@ -c $<

clean:

rm -rf $(OBJS1) $(EXEC1)

rm -rf $(OBJS2) $(EXEC2)

2、通過前面的一個(gè)筆記創(chuàng)建一塊共享內(nèi)存。

[negivup@negivup mycode]$ ipcs -m

------ Shared Memory Segments --------

key shmid owner perms bytes nattch status

0x00000000 229381 negivup 666 1024 0

3、創(chuàng)建并編寫源文件main1.c:

#include #include #include #include int main(int argc, char *args[])

{

// 將進(jìn)程依附到共享內(nèi)存上

// 第一個(gè)參數(shù)是共享內(nèi)存的shmid,第二個(gè)參數(shù)和第三個(gè)參數(shù)都是0

// 函數(shù)的返回值是一個(gè)指向共享內(nèi)存的地址,指針類型是void*

void *p_temp = shmat(229381, 0, 0);

// 轉(zhuǎn)換指針的類型根據(jù)要寫入共享內(nèi)存的數(shù)據(jù)類型而定

char *p = (char*)p_temp;

// 將字符串拷貝至共享區(qū)

strcpy(p, "hello\n");

// 將進(jìn)程從共享內(nèi)存上剝離,傳遞的參數(shù)是shmat返回的地址

shmdt(p);

return 0;

}4、創(chuàng)建并編寫源文件main2.c:

#include #include #include #include int main(int argc, char *args[])

{

// 將進(jìn)程依附到共享內(nèi)存上

// 第一個(gè)參數(shù)是共享內(nèi)存的shmid,第二個(gè)參數(shù)和第三個(gè)參數(shù)都是0

// 函數(shù)的返回值是一個(gè)指向共享內(nèi)存的地址,指針類型是void*

void *p_temp = shmat(229381, 0, 0);

// 轉(zhuǎn)換指針的類型根據(jù)要讀取的共享內(nèi)存的數(shù)據(jù)類型而定

char *p = (char*)p_temp;

// 將讀取的內(nèi)容顯示到屏幕

printf("%s", p);

// 將進(jìn)程從共享內(nèi)存上剝離,傳遞的參數(shù)是shmat返回的地址

shmdt(p);

return 0;

}

5、編譯并執(zhí)行程序:

[negivup@negivup mycode]$ make

gcc -Wall -o main1.o -c main1.c

gcc -Wall -o main2.o -c main2.c

gcc -o main1 main1.o

gcc -o main2 main2.o

--------------------------OK------------------------

[negivup@negivup mycode]$ main1 main1是向共享內(nèi)存中寫入數(shù)據(jù)

[negivup@negivup mycode]$ main2 main2是從共享內(nèi)存中讀取數(shù)據(jù)

hello

PS:根據(jù)傳智播客視頻學(xué)習(xí)整理得出。

總結(jié)

以上是生活随笔為你收集整理的linux 访问共享内存,Linux下的共享内存(03)---通过指针访问共享内存中的数据...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 97公开免费视频 | 欧美日韩不卡一区 | www精品一区二区三区 | 天天操天天操天天操 | 国产精品无码免费播放 | 99资源网| 97se亚洲综合 | 亚洲爱爱av | 久久一区二区三区四区五区 | 在线观看成人一区 | 日本成人中文字幕 | 中文字幕在线2021 | 毛片其地 | 蜜桃91麻豆精品一二三区 | 手机在线永久免费观看av片 | 琪琪色影音先锋 | 黄色综合网站 | 亚洲欧美日韩综合一区二区 | 在线国产91 | 一级艳片新婚之夜 | 天天色综合1 | 天堂久久精品忘忧草 | 十八禁一区二区三区 | 少妇粉嫩小泬白浆流出 | 婷婷在线免费 | 91刺激| 国产日韩欧美日韩大片 | 国产色婷婷一区二区三区竹菊影视 | 爱逼综合网 | 天天操人人 | 黄色片在线视频 | 毛片com | 香蕉二区 | 免费亚洲视频 | 国产精品精品视频 | 一级片黄色片 | 中文字幕第20页 | 久久久久久久综合色一本 | 国产一区二区三区在线观看免费 | 国产在成人精品线拍偷自揄拍 | 欧美熟妇另类久久久久久不卡 | 国产一区二区精品久久 | 午夜天堂在线观看 | 精品国产av色一区二区深夜久久 | 亚洲一二三不卡 | 午夜视频在线免费 | 日韩少妇一区 | 99热精品在线播放 | 亚洲性天堂 | 亚洲www在线观看 | av鲁丝一区二区鲁丝 | 日韩av手机在线免费观看 | 操三八男人的天堂 | 免费看裸体视频网站 | 欧美午夜精品久久久 | 亚洲操操操 | 欧美狠狠干 | 国产又粗又长又大视频 | 欧美鲁| 激情一级片 | 五月激情丁香 | 成人免费视频a | 国产女人18毛片水真多18 | 91超碰在线播放 | 殴美一区二区 | 全国男人的天堂网 | 国产av无码专区亚洲av毛片搜 | 尤物网址在线观看 | 国模吧无码一区二区三区 | 亚洲天天综合 | 美女扒开下面让男人捅 | 亚洲精品乱码久久久久久久久久久久 | 澳门黄色一级片 | 久久久久久久久久一区 | gay男互凵gay男同偷精 | 国产一区二区三区高清 | 秋霞福利网 | 成年人免费在线 | 女人私密又肥又大 | 国产精品国产三级国产a | 自拍偷拍亚洲天堂 | 久草久操 | 国产主播精品 | 成人国产精品一区二区 | 老公吃小头头视频免费观看 | 97超级碰碰碰 | 成人小视频免费看 | 美女黄色免费网站 | 国产精品人人爽人人爽 | 国产欧美一区二区精品忘忧草 | 一区二区三区日韩在线 | 狂野少女电影在线观看国语版免费 | 亚洲精品资源在线 | 中文字幕二区 | 日韩一级片在线播放 | 李宗瑞91在线正在播放 | 在线播放国产视频 | 国产精品久久久久久久久久辛辛 | 色呦呦中文字幕 |