说明
linux下的共享内存函数实现进程间通信,并封装成类
主要函数说明
在Linux下,共享内存(Shared Memory)是一种进程间通信(IPC)机制,它允许两个或多个进程共享同一块物理内存区域。通过使用共享内存,进程可以快速地交换大量数据,而无需通过内核进行数据的复制。
以下是Linux下共享内存相关的几个主要函数及其讲解:
shmget()
功能:用于创建新的共享内存段或获取已存在的共享内存段的标识符。
原型:int shmget(key_t key, size_t size, int shmflg);
key:一个键,用于标识共享内存段。
size:共享内存段的大小。
shmflg:标志位,通常与权限位(如IPC_CREAT、IPC_EXCL等)结合使用。
返回值:成功时返回共享内存段的标识符,失败时返回-1。
shmat()
功能:将共享内存段附加到进程的地址空间。
原型:void *shmat(int shmid, const void *shmaddr, int shmflg);
shmid:共享内存段的标识符。
shmaddr:指定共享内存附加到进程地址空间的起始地址,通常设为NULL以让系统选择。
shmflg:标志位,通常与SHM_RDONLY结合使用以指定只读访问。
返回值:成功时返回指向共享内存段的指针,失败时返回(void *)-1。
shmdt()
功能:从进程的地址空间中分离共享内存段。
原型:int shmdt(const void *shmaddr);
shmaddr:指向之前附加的共享内存段的指针。
返回值:成功时返回0,失败时返回-1。

最低0.47元/天 解锁文章
994

被折叠的 条评论
为什么被折叠?



