进程间通信

1、管道 pipe(int  fds[2])

     主进程建立管道,然后fork,然后父子进程对同一个管道进行读或写操作

2、通过管道实现执行某个shell命令,并且把执行进程的标准输出或输入返回

    FILE * fp=popen('cmdString','type')

     pclose(fp)

3、命名管道FIFO

     读会在写打开的管道上阻塞,写会在读打开的管道上阻塞。

     多个写在打开一个的读管道上阻塞,最后一个写进程关闭时,会给读管道发送文件结束标记。

     最后一个引用管道进程结束,管道也会删除。

4、IPC内核对象的缺点

    1)无引用计数,不会自动删除

    2)消息队列,新的应用不建议使用,设计初始是为了告诉IPC,现在与管道比没有差异了。

    3)信号量就是资源计数器,需要在调用sem_op时,指定UNDO,便于进程终止时,释放资源。

          加锁时,推荐使用记录锁

         --信号量、互斥锁、记录锁,互斥最高;记录次,信号量最低,推荐使用记录锁   4)共享存储--匿名内存共享

      挂载 卸载

   

原文地址:https://www.cnblogs.com/justart/p/7826371.html