C/C++教程

四、进程间通信(IPC)

本文主要是介绍四、进程间通信(IPC),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、概述

进程间通信(IPC)主要包括以下内容:

  • 数据传输。
  • 资源共享。
  • 事件通知。
  • 进程控制

linux系统下的ipc:

  • 管道:包括有名管道和无名管道。
  • 信号
  • FIFO
  • 消息队列
  • 信号量
  • 共享内存。

二、进程间通信的方式

1、无名管道

  用于具有亲缘关系的进程间通信(常见的就是父子进程),数据只能单向流动。

(1)创建管道

#include<unistd.h> 
int pipe(int pipefd[2]);
参数:
  • pipefd[2]:参数为两个文件描述符,一个读文件描述符,一个写文件描述符。
返回值:
  • 成功返回0
  • 失败返回-1,且errno错误码被设置。

(2)特点:

  • 特殊文件(没有名字),无法使用open,但是可以使用close.

  • 只能通过子进程继承文件描述符的形式来使用。

  • write和read操作可能会zuse进程。

  • 所有文件描述符被关闭之后,无名管道被销毁。

(3)使用步骤

  • 父进程pipe无名管道

  • fork子进程。

  • close无用端口。

  • write/read读写端口。

  • close读写端口。

 

这篇关于四、进程间通信(IPC)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!