JavaScript is required to for searching.
跳过导航链接
退出打印视图
编程接口指南     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  内存和 CPU 管理

2.  用于 Solaris Cluster 的远程共享内存 API

3.  会话描述协议 API

4.  进程调度程序

5.  地址组 API

6.  输入/输出接口

7.  进程间通信

进程之间的管道

命名管道

套接字概述

POSIX 进程间通信

POSIX 消息

POSIX 信号量

POSIX 共享内存

System V IPC

消息、信号量以及共享内存的权限

IPC 接口、密钥参数以及创建标志

System V 消息

初始化消息队列

控制消息队列

发送和接收消息

System V 信号量

初始化信号量集

控制信号量

信号量操作

System V 共享内存

访问共享内存段

控制共享内存段

附加和拆离共享内存段

8.  套接字接口

9.  使用 XTI 和 TLI 编程

10.  包过滤钩子

11.  传输选择和名称到地址映射

12.  实时编程和管理

13.  Solaris ABI 和 ABI 工具

A.  UNIX 域套接字

索引

POSIX 进程间通信

POSIX 进程间通信 (Interprocess Communication, IPC) 是 System V 进程间通信的变体。它是在 Solaris 7 发行版中引入的。与 System V 对象类似,POSIX IPC 对象的属主、属主的组以及其他用户具有读取和写入权限,但是没有执行权限。POSIX IPC 对象的属主无法将对象分配给其他属主。POSIX IPC 包括以下功能:

与 System V IPC 接口不同,POSIX IPC 接口均为多线程安全接口。

POSIX 消息

下表中列出了 POSIX 消息队列接口。

表 7-2 POSIX 消息队列接口

接口名称
目的
连接到以及(可选)创建命名消息队列
结束到开放式消息队列的连接
结束到开放式消息队列的连接,并在最后一个进程关闭此队列时将其删除
将消息放入队列
在队列中接收(删除)最早且优先级最高的消息
通知进程或线程消息已存在于队列中
设置或获取消息队列属性

POSIX 信号量

POSIX 信号量比 System V 信号量轻得多。POSIX 信号量结构定义单个信号量,而不是定义最多包含 25 个信号量的数组。

POSIX 信号量接口如下所示。

sem_open(3RT)

连接到以及(可选)创建命名信号量

sem_init(3RT)

初始化信号量结构(在调用程序内部,因此不是命名信号量)

sem_close(3RT)

结束到开放式信号量的连接

sem_unlink(3RT)

结束到开放式信号量的连接,并在最后一个进程关闭此信号量时将其删除

sem_destroy(3RT)

初始化信号量结构(在调用程序内部,因此不是命名信号量)

sem_getvalue(3RT)

将信号量的值复制到指定整数中

sem_wait(3RT)sem_trywait(3RT)

当其他进程拥有信号量时进行阻塞,或者当其他进程拥有信号量时返回错误

sem_post(3RT)

递增信号量计数

POSIX 共享内存

POSIX 共享内存实际上是映射内存的变体(请参见创建和使用映射)。二者的主要差异在于:

shm_open(3RT) 中的选项数实际上少于 open(2) 中提供的选项数。