linux进程间通信函数

1. pipe系统调用的使用格式

#include<unistd.h>

int pipe(int fd[2])

功能:创建一个简单的管道,若成功则为数组fd分配两个文件描述符,其中fd[0]用于读取管道,fdp[1]用于写入管道。

返回值:成功返回0,失败返回-1。

 

2. 命名管道:mkfifo系统调用的使用格式:

#include<sys/types.h>

#include<sys/stat.h>

功能:创建命名管道

返回:若成功则为0,若出错则为-1.

 

3.信号量:

semget()系统调用的使用格式:

#include<sys/sem.h>

功能:创建一个新的信号量或取得一个新的键值

返回值:成功返回信号量标志码,失败返回-1。

 

semop()系统调用的使用格式:

#include<sys/sem.h>

功能:用户改变信号量的值。

返回值:成功返回0,否则-1.

 

4.共享内存

shmget()系统调用的使用格式:

#include<sys.shm.h>

功能:创建共享内存。

返回值:成功返回共享内存标识码,失败返回-1.

 

shmat()的使用格式:

#include<sys.shm.h>

功能:允许进程访问一块共享内存(共享内存刚创建时不能使用)。

返回值:成功返回共享内存的起始地址,失败返回-1.

 

shmdt()的使用格式:

#include<sys/shm.h>

功能:释放共享内存。

返回值:成功时返回0.失败时返回-1.

 

shmctl()的使用方法:

#include<sys/shm.h>

功能:共享内存控制函数。

返回值:成功返回0,失败返回-1。

 

5.消息队列:

msgget()的使用格式:

#include<sys/types.h>

#include<sys/ipc.h>

#include<sys/msg.h>

功能:创建一个新的消息队列,或者希望存取一个已经存在的消息队列。

返回值:成功返回消息队列标识符,失败返回-1.

 

msgsnd()的头文件:

#include<sys/types.h>

#include<sys/ipc.h>

#include<sys/msg.h>

功能:往队列中发送一条消息。

返回值:成功返回0,错误返回-1.

 

msgrcv()的头文件:

#include<sys/types.h>

#include<sys/ipc.h>

#include<sys/msg.h>

功能:读取消息,从消息队列中取走消息

返回值:成功返回0,错误返回-1.

 

msgctl()的头文件:

#include<sys/types.h>

#include<sys/ipc.h>

#include<sys/msg.h>

功能:对消息队列的操作

返回值:成功返回0,错误返回-1.

 

6. 信号与信号机制

signal函数的头文件:

#include<signal.h>

posted @ 2011-09-19 09:29  auleaf  阅读(600)  评论(0编辑  收藏  举报