Linux下进程间通信

运维 系统运维
一般用mkfifo来创建。如果没有说明管道是非阻塞的,那么一个为读打开的管道将阻塞直到有进程为写打开此FIFO。同样如果为写打开的管道将阻塞直到有进程为读打开此FIFO。

Linux下进程间通信大致有以下几种:

1.socket

2.管道(包括匿名管道适用于父子进程,命名管道)

3.信号量

4.共享内存

5.消息队列

1.socket

socket可以用于本地进程间通信也可以用于远程间,是最常用的。

2.管道--匿名管道

一般用pipe创建,在父子间通信。在父进程中关闭读/写管道,在子进程中关闭写/读管道。

2.管道--命名管道

一般用mkfifo来创建。如果没有说明管道是非阻塞的,那么一个为读打开的管道将阻塞直到有进程为写打开此FIFO。同样如果为写打开的管道将阻塞直到有进程为读打开此FIFO。

3.信号量

一个进程可以用kill发送信号至另外一个进程。

4.共享内存

使用函数:shmget、shmat、shmctl、shmdt

用shmget函数得到一块内存,并用shmat设置为允许本进程使用这块共享内存。使用完以后用shmdt删除内存块。

5.消息队列

使用函数:msgget、msgsnd、msgrcv、msgctl

使用步骤同上。
 

【编辑推荐】

  1. 全面了解Linux进程技术
  2. Linux查看所有进程ps -aux命令介绍
  3. 操作笔记:Linux系统进程通信
责任编辑:赵宁宁 来源: chinaitlab
相关推荐

2019-05-08 11:10:05

Linux进程语言

2019-06-04 09:00:00

Linux进程进程间通信

2019-05-13 10:00:41

Linux进程间通信命令

2017-06-19 13:36:12

Linux进程消息队列

2018-01-12 14:35:00

Linux进程共享内存

2017-08-06 00:05:18

进程通信开发

2018-05-30 13:58:02

Linux进程通信

2020-11-04 07:17:42

Nodejs通信进程

2011-06-22 17:09:50

QT 进程 通信

2024-01-03 10:17:51

Linux通信

2013-03-28 13:14:45

AIDL进程间通信Android使用AI

2019-11-08 14:47:49

TCPIP网络

2011-06-24 14:01:34

Qt QCOP 协议

2020-11-18 09:06:04

Python

2019-11-27 10:36:11

进程通信IPC

2022-02-07 09:10:34

进程通信加锁

2022-07-04 08:29:13

electron通信

2020-12-01 09:22:43

进程协程开发

2020-09-22 07:35:06

Linux线程进程

2021-07-06 21:30:06

Linux进程通信
点赞
收藏

51CTO技术栈公众号