2010-07-23 Linux C 进程通信编程

来源:互联网 发布:flash for mac 编辑:程序博客网 时间:2024/06/05 06:27

1、进程间通信的目的:

                          (1)数据传输

                          (2)资源共享

                          (3)通知事件

                          (4)进程控制

2、POSIX(Portable Operating System Interface ) 表示可移植操作系统接口。是由IEEE(Institute of Electrical and Electronics Engineers ) 电器和电子工程师协会 开发的,目的是提高应用程序的可移植性。Microsoft windows 也支持 POSIX 标准。

3、Linux使用的进程间通信方式包括:

                                                    (1)无名管道和有名管道

                                                    (2)信号

                                                    (3)消息队列

                                                    (4)共享内存

                                                    (5)信号量

                                                    (6)套接字

4、管道

          (1) 管道是单向的、先进先出的,它把一个进程的输出和另一个进程的输入连接在一起。

          (2)   数据被一个进程读出后,将被从 管道中删除,其他进程将不能在读到这些数据。

          (3)管道包括无名管道和有名管道两种。前者用于父进程和紫禁城的通信;后者可用于同一系统中的任意两个进程通信;

5、无名管道

          (1)管道创建     int pipe(int filedis[2])

                  //当一个管道建立时,它会创建两个文件描述符:filedis[0]用于读管道,filedis[1]用于写管道

          (2)关闭管道     close(filedis[x]) //逐个关闭

                  //关闭管道只需将这两个文件描述符关闭即可 

          (3)管道用于不同进程间的通信,通常先创建一个管道,在通过fork函数创建一个子进程,该子进程会继承父进程所创建的管道(即子进程会继承文件描述符)。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击