IPC通信常用宏定义及说明

Posix IPC概述 消息队列 信号量 共享内存区
头文件 <mqueue.h> <semaphore.h> <sys/mman.h>
创建、打开或删除IPC的函数 mq_open
mq_close
mq_unlink
sem_open
sem_close
sem_unlink
sem_init
sem_destroy
shm_open
shm_unlink
控制IPC操作的函数 mq_getattr
mq_setattr
ftruncate
fstat
IPC操作函数 mq_send
mq_receive
mq_notify
sem_wait
sem_trywait
sem_post
sem_getvalue
mmap
munmap

Posix IPC概述(oflag常值)

mq_open

sem_open

shm_open

 

只读
只写
读写

O_RDONLY
O_WRONLY
O_RDWR

 

O_RDONLY

O_RDWR

 
 
 
         

若不存在则创建
排他性创建

O_CREAT
O_EXCL

    O_CREAT
    O_EXCL

O_CREAT
O_EXCL

 
 
         

非阻塞模式
若已存在则截短

O_NONBLOCK

 


O_TRUNC

 
 

Posix 创建或打开IPC通道的命令参数

oflag参数

key不存在

key已存在

无特殊标志

出错,erron=ENOENT

成功,引用已存在对象

O_CREAT

成功,创建新对象

成功,引用已存在对象

O_CREAT | O_EXCL

成功,创建新对象

出错,errno=EEXIST

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~我是无辜的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

System V IPC概述

消息队列

信号量

共享内存区

 
         

头文件

<sys/msg.h>

<sys/sem.h>

<sys/shm.h>

 
         

创建、打开或删除IPC的函数

msgget

semget

shmget

 
         

控制IPC操作的函数

msgctl

semctl

shmctl

 
         

IPC操作函数

msgsnd
msgrcv

semop

shmat
shmdt

 
 

System V 创建或打开IPC通道的命令参数

oflag参数

key不存在

key已存在

无特殊标志

出错,erron=ENOENT

成功,引用已存在对象

IPC_CREAT

成功,创建新对象

成功,引用已存在对象

IPC_CREAT | IPC_EXCL

成功,创建新对象

出错,errno=EEXIST

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值