📄 share_memory.c
字号:
#include "share_memory.h"
/* create or get share memory */
void *shm_create(int key, unsigned long size, int *pshmid)
{
int shmid;
void *addr;
/*
int shmget(key_t key, int size, int flag);
*/
shmid = shmget(key, size, 0);
if (shmid < 0)
{
shmid = shmget(key, size, IPC_CREAT | 0666);
if (shmid < 0)
{
printf("sys alm: create share memory error!\n");
return 0;
}
else
printf("sys not: create share memory success!\n");
/*
void *shmat(int shmid, void *addr, int flag);
*/
addr = (void *) shmat(shmid, NULL, 0);
if (addr == (void *)-1)
return 0;
/* init share memory segmemnt */
memset(addr, 0, size);
}
else
{
addr = (void *) shmat(shmid, NULL, 0);
if (addr == (void *)-1)
{
printf("sys not: share memory get failed!\n");
return 0;
}
}
printf("sys not: share memory get success!\nshmid: %d, addr:%x\n", shmid, addr);
*pshmid = shmid;
return addr;
}
/* share memory disconnect */
int shm_close(void *shm)
{
/*
int shmdt(void *addr);
*/
return(shmdt(shm));
}
/* share memory delete */
int shm_delete(int shmid)
{
/*
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
*/
return shmctl(shmid, IPC_RMID, 0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -