#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
/*
int shm_open(const char *name, int oflag, mode_t mode);
//创建或打开一个共享内存,成功返回一个整数的文件描述符,错误返回-1。
1.name:共享内存区的名字;
2.标志位;open的标志一样
3.权限位
编译时要加库文件-lrt
*/
#define SHM_NAME "shm_ram"
#define FILE_SIZE 4096
#define WRITE_STR "to be or not to be"
int main(int argc, char **argv)
{
int param = 0;
int ret = -1;
int fd = -1;
char buf[4096] = {0};
void* map_addr = NULL;
if (argc < 2) {
printf("param error\n");
goto _OUT;
}
param = atoi(argv[1]);
//创建或者打开一个共享内存
fd = shm_open(SHM_NAME, O_RDWR|O_CREAT, 0644);
if(-1 == (ret = fd))
{
perror("shm failed: ");
goto _OUT;
}
linux共享内存(shm)的测试代码
最新推荐文章于 2022-12-12 14:15:00 发布