六种方法全面解释Linux下进程间通信

标签: Linux | 发表时间:2013-08-27 22:42 | 作者:gouki
出处:http://www.neatstudio.com/

 因为最近在写点东西遇到了这方面的问题。所以关注了一下,这段内容是摘抄来的。因为以前用PHP的时候,一般就是shm_attach/msg_get_queue/ 管道等

有些东西不是特别熟,所以记录下来做笔记 

 

Linux下进程间通信大致有以下几种:(来自:http://golang.usr.cc/blog-1403-3071.html)
  1. 1.socket  
  2. 2.管道(包括匿名管道适用于父子进程,命名管道)  
  3. 3.信号量  
  4. 4.共享内存  
  5. 5.消息队列 
  6.  
  7. 1.socket  
  8. socket可以用于本地进程间通信也可以用于远程间,是最常用的。  
  9. 2.管道--匿名管道  
  10. 一般用pipe创建,在父子间通信。在父进程中关闭读/写管道,在子进程中关闭写/读管道。  
  11. 2.管道--命名管道  
  12. 一般用mkfifo来创建。如果没有说明管道是非阻塞的,那么一个为读打开的管道将阻塞直到有进程为写打开此FIFO。同样如果为写打开的管道将阻塞直到有进程为读打开此FIFO。  
  13. 3.信号量  
  14. 一个进程可以用kill发送信号至另外一个进程。  
  15. 4.共享内存  
  16. 使用函数:shmget、shmat、shmctl、shmdt  
  17. 用shmget函数得到一块内存,并用shmat设置为允许本进程使用这块共享内存。使用完以后用shmdt删除内存块。  
  18. 5.消息队列  
  19. 使用函数:msgget、msgsnd、msgrcv、msgctl  
  20. 使用步骤同上。  

 

相关 [方法 解释 linux] 推荐:

六种方法全面解释Linux下进程间通信

- - 膘叔
 因为最近在写点东西遇到了这方面的问题. 所以关注了一下,这段内容是摘抄来的. 因为以前用PHP的时候,一般就是shm_attach/msg_get_queue/ 管道等. 有些东西不是特别熟,所以记录下来做笔记 . Linux下进程间通信大致有以下几种:(来自:http://golang.usr.cc/blog-1403-3071.html).

【学习笔记——Linux】Linux下正确关机方法

- - CSDN博客系统运维推荐文章
1.2 通知在线使用者关机时间. 1.1 观察系统使用状态. 联网状态:netstat -a. 后台执行的程序:ps -aux. 1.2 通知在线使用者关机时间. shutdown +2 "The machine will shutdown" # 2min 后关机,并通知在线者. 将内存中未写入硬盘的数据写入硬盘.

Linux 下挂载新硬盘方法

- - 操作系统 - ITeye博客
Life吧 本文永久链接地址:. 从查询结果看出,有一个/dev/sdb的盘未挂载. 用fdisk 对/dev/sdb 进行分区. 再次查看分区情况,多出来一个/dev/sdb1 的区,这个1是我们在前面指定的,如果我们指定2,就变成 sdb2了. 格式化 /dev/sdb1 分区. 创建data目录并将 /dev/sdb1 挂在到该目录下.

linux nohup.out文件过大解决方法

- - 孟飞阳的博客
先说一下 Linux重定向:. 0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出. 在一般使用时,默认的是标准输出,既1.当我们需要特殊用途时,可以使用其他标号. 例如,将某个程序的错误信息输出到log文件中:./program 2>log. 这样标准输出还是在屏幕上,但是错误信息会输出到log文件中.

Linux主机性能测试方法

- - Mythsman
最近打算用躺家吃灰的树莓派4B搭一个NAS,用来快捷方便地访问和备份一些资源. 由于备选的硬件(芯片、硬盘、网线、路由器等)和软件(内网穿透技术)的技术选型比较多,这时候就需要有一个能简单评估服务性能的方法. 因此简单搜寻了一下常见方案,方便在技术选型时有个统一的对比标准,并且对一些常见指标能在数量级上有一些感性的理解.

Linux 常用命令使用方法大搜刮

- - CSDN博客系统运维推荐文章
Linux 常用命令使用方法大搜刮. 1.# 表示权限用户(如:root),$ 表示普通用户.   开机提示:Login:输入用户名.   password:输入口令   用户是系统注册用户成功登陆后,可以进入相应的用户环境.   退出当前shell,输入:exit. 2.useradd netseek 添加一个netseek用户.

一个及其简单的卸载linux的方法

- - Ubuntusoft
很多新童鞋都不知道怎么卸载linux,往往搞损坏grub,导致不能正常进入windows. 下面介绍一个很简单的方法,该方法屡试不爽呀,我自从会卸载linux以来都是用这个方法,安全,方便,快捷. 1,首先你必须没有在win下把linux删了. 在linux下打开终端,输入:. 然后输入root权限密码,回车.

Linux中Kill进程的N种方法(转)

- - The Big Data Way,平凡但不乏味
long long ago,曾有一个想法,就是完全脱离windows,使用linux生活、工作. 以前迫于各种专业工具不支持linux,只能无奈的使用xp. 最近工作内 容是android移植+单片机开发,android就不说了,必须用linux开发. 单片机也找到一些linux的工具,于是乎有不少时间是在 linux上进行开发工作.

Linux下java进程CPU占用率高-分析方法

- - Linux - 操作系统 - ITeye博客
今天登陆同事的一台gateway 开始以为hive环境登陆不了了,仔细一看看了下是因为机器很卡,我每次等几秒没登陆就ctrl+c了,看了下是有个java进程cpu:340.4%  mem:14.6%. 一般解决方法是通过top命令找出消耗资源高的线程id,利用strace命令查看该线程所有系统调用.

(总结)Linux下Oracle11gR2的ORA-00845错误解决方法

- - 服务器运维与网站架构|Linux运维|X研究
PS:前些时间一台演示环境的Oracle 11g for Linux不知什么原因,启动不起来,报错ORA-00845. 搜索了下,这个问题是由于设置SGA的大小超过了操作系统/dev/shm的大小. 当时解决了没空写总结,今天有点空,总结分享一下:. Oracle在metalink的文档:Doc ID: Note:460506.1中进行了说明.