猿问

如何在C中与Linux一起使用共享内存

如何在C中与Linux一起使用共享内存

我的一个项目有点问题。

我一直在试图找到一个有详细文档的使用共享内存的示例。fork()但没有成功。

基本上,当用户启动程序时,我需要在共享内存中存储两个值:电流路径这是夏尔*和一个文件名这也是夏尔*.

根据命令参数,一个新进程将以fork()而该过程需要读取和修改电流路径变量存储在共享内存中,而文件名变量是只读的。

有关于共享内存的示例代码(如果可能的话)的好教程,您可以指导我吗?


Helenr
浏览 791回答 3
3回答

呼唤远方

这些是用于使用共享内存的#include<sys/ipc.h>#include<sys/shm.h>int&nbsp;shmid;int&nbsp;shmkey&nbsp;=&nbsp;12222;//u&nbsp;can&nbsp;choose&nbsp;it&nbsp;as&nbsp;your&nbsp;choiceint&nbsp;main(){ &nbsp;&nbsp;//now&nbsp;your&nbsp;main&nbsp;starting &nbsp;&nbsp;shmid&nbsp;=&nbsp;shmget(shmkey,1024,IPC_CREAT); &nbsp;&nbsp;//&nbsp;1024&nbsp;=&nbsp;your&nbsp;preferred&nbsp;size&nbsp;for&nbsp;share&nbsp;memory &nbsp;&nbsp;//&nbsp;IPC_CREAT&nbsp;&nbsp;its&nbsp;a&nbsp;flag&nbsp;to&nbsp;create&nbsp;shared&nbsp;memory &nbsp;&nbsp;//now&nbsp;attach&nbsp;a&nbsp;memory&nbsp;to&nbsp;this&nbsp;share&nbsp;memory &nbsp;&nbsp;char&nbsp;*shmpointer&nbsp;=&nbsp;shmat(shmid,NULL); &nbsp;&nbsp;//do&nbsp;your&nbsp;work&nbsp;with&nbsp;the&nbsp;shared&nbsp;memory&nbsp; &nbsp;&nbsp;//read&nbsp;-write&nbsp;will&nbsp;be&nbsp;done&nbsp;with&nbsp;the&nbsp;*shmppointer &nbsp;&nbsp;//after&nbsp;your&nbsp;work&nbsp;is&nbsp;done&nbsp;deattach&nbsp;the&nbsp;pointer &nbsp;&nbsp;shmdt(&shmpointer,&nbsp;NULL);
随时随地看视频慕课网APP
我要回答