System V IPV & Posix IPC(摘自Unix网络编程卷2)

Poxis IPC

  消息队列 信号量 共享内存区
头文件 <mqueue.h> <semaphore.h> <sys/mman.h>
创建、打开或删除IPC的函数

mq_open

mq_close

mq_unlink

sem_open

sem_close

sem_unlink

shm_open

shm_unlink

sem_init

sem_destroy

控制IPC操作的函数

mq_getattr

mq_setattr

 

ftruncate

fstat

IPC操作函数

mq_send

mq_receive

mq_notify

sem_wait

sem_trywait

sem_post

sem_getvalue

mmap

munmap

sem_open是用来创建命名信号量的,在RHEL5.4测试,命名信号量存在于/dev/shm目录下,注意其持续性是随内核。创建了一个命名信号量,其初始值竟然是sem_getvalue:134514137,为什么?为什么打开一个信号量用O_RDONLY,还可以sem_post呢?

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

原文地址:https://www.cnblogs.com/lijinlei/p/4446317.html