我们这里不再提基础的知识,谈一下应用。
共享内存:
该图来自于《Linux程序设计》,可以看出共享内存就是如其名,两个进程映射到的物理内存是同一个。
下面就有一个例子来使用使用共享内存呗
这是函数shmmain.c
# include <string.h>
# include <stdio.h>
# inculde <stdlib.h>
# include <assert.h>
# include <unistd.h>
# include <sys/shm.h>
int main()
{
int shmid=shmget((key_t)1234,256,0600|IPC_CREAT);
assert(shmid!=-1);
/*上面的代码是创建共享内存,关于这个key不牵扯共享内存和信号量的一样不一样
这不相关*/
char *s=(char *)shmat(shmid,NULL,0);
assert(s!=NULL);
/*shmat函数的返回值void,需要强转为char *型,char *s接收,
建立映射,访问当前进程通过s*/