验证Linux共享内存不能自动释放

说明:
1、查看共享内存,使用命令:ipcs -m
2、删除共享内存,使用命令:ipcrm -m [shmid]

create.c

#include<stdio.h>
#include <sys/types.h>
#include <sys/shm.h>

int main()
{
	int fd = shmget((key_t)0x1234,10,IPC_CREAT | 0666);/* 创建共享内存 */
    printf("hello world!\r\n");
    return 0;
}

gcc create.c -o create
./create
ipcs -m查看共享内存创建结果:
在这里插入图片描述

relase.c

#include<stdio.h>
#include <sys/types.h>
#include <sys/shm.h>

int main()
{
 	int fd = shmget(0x1234, 0, 0);/* 打开已创建共享内存 */
	shmctl(fd, IPC_RMID, NULL);   /* 删除共享内存IPC_RMID */
    printf("relase hello world!\r\n");
    return 0;
}

gcc relase.c -o relase
./relase
ipcs -m查看删除释放共享内存结果:
键0x1234已被删除
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u014783785/article/details/107662617