进程

Linux进程的创建与管理

https://blog.csdn.net/qq_38410730/article/details/81193118

Linux 进程--父进程查询子进程的退出状态

https://www.cnblogs.com/gwyy/p/8611398.html

进程间通信:

https://www.cnblogs.com/zgq0/p/8780893.html

匿名管道(包括popen的使用)、

FIFO命名管道、

当 open 一个FIFO时,是否设置非阻塞标志(O_NONBLOCK)的区别:

  • 若没有指定O_NONBLOCK(默认),只读 open 要阻塞到某个其他进程为写而打开此 FIFO。类似的,只写 open 要阻塞到某个其他进程为读而打开它。

  • 若指定了O_NONBLOCK,则只读 open 立即返回。而只写 open 将出错返回 -1 如果没有进程已经为读而打开该 FIFO,其errno置ENXIO。

消息队列、

可以利用命令ipcs -q查看消息队列;

消息队列的创建是在程序之外的,换而言之,就是说消息队列创建完成之后并不会因为程序结束被释放空间。那么,我们可以用ipcrm -q +msqid 命令来删除消息队列;或用msgctrl remove掉消息队列;

https://blog.csdn.net/qq_27664167/article/details/81712887

信号量(同步机制,不算是通信)、

共享内存、

消息队列、信号量和共享内存都是内核提供的,三者使用方式相似,都是ftok();**get();发;收;**ctrl();

 

1.管道:速度慢,容量有限,只有父子进程能通讯    

2.FIFO:任何进程间都能通讯,但速度慢    

3.消息队列:容量受到系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据的问题    

4.信号量:不能传递复杂消息,只能用来同步    

5.共享内存区:能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的问题,相当于线程中的线程安全,当然,共享内存区同样可以用作线程间通讯,不过没这个必要,线程间本来就已经共享了同一进程内的一块内存

 

流管道、

管道是半双工的, 流管道是双工的,用的s_pipe()

socket

见socket相关的内容

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值