共享内存

创建共享内存区
int shmget(key_t key , size_t size , int shm-flg);

参数:

flags--------IPC_CREAT | 0666   建立加读写权限

ipcs -m 可以显示已经成功创建一块共享内存,nattch字段显示已经附加到这个内存区的进程数


附加到共享内存区

void *shmat(int shmid,const void *shmaddr,int shmflg)

char buf[1024];

char *mem=shmat(shid,0,0);//第一个参数是共享内存的id  一般第二个参数和第三个参数会填0,第二个参数填buf表示共享内存会与buf绑定,返回共享内存地址给mem


多个程序读写共享内存

进程1:

char *buf = shmat(shid, NULL, 0);

strcpy(buf,"hello\n");

进程2:

char *buf = shmat(shid, NULL, 0);

printf("%s\n",buf);


分离共享内存

int shmdt(const void *shmaddr)

shmdt(buf);


共享内存查看命令

查看共享内存  ipcs

杀死共享内存  ipcsrm  共享内存ID

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容