共享内存API函数 shmat() shmdt() shmctl()
来源:互联网 发布:java 哈希与map 编辑:程序博客网 时间:2024/05/21 15:45
shmat
作用:共享内存区对象映射到调用进程的地址空间 核心处理函数: void *shmat( int shmid , void *shmaddr , int shmflag );shmat()是用来允许本进程访问一块共享内存的函数。 int shmid是那块共享内存的ID。 char *shmaddr是共享内存的起始地址 int shmflag是本进程对该内存的操作模式。如果是SHM_RDONLY的话,就是只读模式。其它的是读写模式 成功时,这个函数返回共享内存的起始地址。失败时返回-1 最近用到内存共享,收集整理了些资料,做了个简单的对比 mmap系统调用系统V共享内存获取共享
内存ID#include <sys/mman.h>
fd=open(name ,flag,mode);
if(fd<0)
….#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key_t key, size_t size, int shmflg);映射内存ptr=mmap(NULL,len, PROT_READ|PROT_WRITE,
MAP_SHARED , fd , 0);void *shmat( int shmid , char *shmaddr , int shmflag );解除映射int munmap( void * addr, size_t len ) ;int shmdt( char *shmaddr );
使进程中的映射内存无效化,不可以使用。但是保留空间其它同步:
int msync ( void * addr , size_t len, int flags);控制:
shmctl( shmid , IPC_STAT , &buf );
// 取得共享内存的状态
shmctl( shmid , IPC_RMID , &buf );
// 删除共享内存–删除共享内存,彻底不可用,释放空间
内存ID#include <sys/mman.h>
fd=open(name ,flag,mode);
if(fd<0)
….#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key_t key, size_t size, int shmflg);映射内存ptr=mmap(NULL,len, PROT_READ|PROT_WRITE,
MAP_SHARED , fd , 0);void *shmat( int shmid , char *shmaddr , int shmflag );解除映射int munmap( void * addr, size_t len ) ;int shmdt( char *shmaddr );
使进程中的映射内存无效化,不可以使用。但是保留空间其它同步:
int msync ( void * addr , size_t len, int flags);控制:
shmctl( shmid , IPC_STAT , &buf );
// 取得共享内存的状态
shmctl( shmid , IPC_RMID , &buf );
// 删除共享内存–删除共享内存,彻底不可用,释放空间
- 共享内存API函数 shmat() shmdt() shmctl()
- 共享内存函数(shmget、shmat、shmdt、shmctl)
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- 共享内存函数(shmget、shmat、shmdt、shmctl)
- 共享内存函数(shmget,shmat,shmdt,shmctl)及其范例
- 共享内存函数(shmget、shmat、shmdt、shmctl)
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- word中自动生成递增数字
- android开源项目
- Thread-Specific Storage 模式
- 常用命令linux下vi编辑器命令大全
- mysql命令收集
- 共享内存API函数 shmat() shmdt() shmctl()
- spring 几个很实用功能 介绍
- 通过 dbms_job.submit 定时调用存储过程
- oracle函数大全
- PHP 连接MySQL 的单态类
- 操作系统试验七——模拟虚拟存储管理(上)
- hibernate3中出现 could not initialize proxy - no Session 错误的解决办法以及lazy load的介绍
- Linux操作系统下C++编程初探
- C++中的空类,默认产生哪些类成员函数? 转