共享内存
#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key_t key, size_t size, int shmflg); //创建/打开共享内存
//参数一:起个名
//参数二:共享内存的大小
//参数三:打开的话填0,创建的话O_CREAT | 权限
//返回值是共享内存的shmid,-1代表出错
void *shmat(int shmid, const void *shmaddr, int shmflg);
//将共享内存挂载到进程上
//参数一:指定那个共享内存
//参数二:填NULL,让操作系统去找地方
//参数三:标志位,填0
//返回值是挂载到内存空间的地址
int shmdt(const void *shmaddr); //删除掉挂载的共享内存,但共享内存还在
//参数写shmat的返回值
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
//删除掉共享内存
示例程序:
创建共享内存:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int main( void ) {
//创建共享内存
int shmid = shmget(1234