Linux C 编程第13章进程间通信方式 十个问题及解答(1)
来源:互联网 发布:阿里云服务器视频教程 编辑:程序博客网 时间:2024/06/05 14:43
Linux C 编程第13章进程间通信方式 十个问题及解答(1)
1. Linux C进程间通信的目的?
数据传输:一个进程需要将他的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间;
共享数据:多个进程想要共享数据,一个进程对共享数据的修改,别的进程应该立刻看到;
通知事件:一个进程需要向另一个或一组进程发送消息,通知它发生了某种事件(如进程终止前要通知父进程);
资源共享:多个进程之间共享同样的资源。为了做到这一点,需要内核提供锁和同步机制;
进程控制:有些进程希望完全控制另一个进程的执行,此时控制进程希望能够拦截另一个进程的所有信息和异常,并能够及时知道它的状态。
2. Linux 下进程间通信的几种主要方式?
管道和有名管道;
信号;
消息队列;
共享内存;
信号量;
套接字。
3. 管道的特点?
管道是半双工的,数据只能向一个方向流动,双方通信时,需要建立两个管道;
只能用于父子进程或兄弟进程之间;
单独构成一种独立的文件系统;
数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出,写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部写出数据。
4. 怎样建立无名管道?
管道用于不同进程间通信。通常先创建一个管道,再通过 fork 函数创建一个子进程,该子进程会继承父进程所创建的管道。(必须在系统调用fork()之前调用pipe(),否则子进程不会继承文件描述符)
5. 从管道中怎样读取数据?
如果管道的写端不存在,则认为已经读到了数据的末尾,读函数返回的读出字节数为0;
当管道的写端存在时,如果请求的字节数目大于PIPE_BUF,则返回管道中现有的数据字节数,如果请求的字节数目不大于PIPE_BUF,则返回管道中现有数据字节数,或者返回请求的字节数。
管道写端关闭后,写入的数据将一直存在,直到读出为止。
6. 怎样从管道中写入数据?
向管道中写入数据,Linux将不保证写入的原子性,管道缓冲区一有空闲区域,写进程就会师徒向管道写入数据。如果读进程不读走管道缓冲区的数据,那么写操作将一直阻塞。
只有当管道的读端存在时,向管道中写入数据才有意义。
7. 无名管道应用实例有哪些?
用于shell;
用于具有亲缘关系的进程间通信。
8. 信道常用于哪些方面?
在shell中时常会用到管道(作为输入输出的重定向),在这种应用方式下,管道的创建对于用户来说是透明的。
用于具有亲缘关系的进程间通信,用户自己创建管道,并完成读写操作。
9. 信号的本质是什么?
信号实在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。
10. 信号来源是什么?
硬件来源(按下键盘或其他硬件故障);
软件来源与一些非法运算等操作。
- Linux C 编程第13章进程间通信方式 十个问题及解答(1)
- Linux C编程 第13章进程间通信方式十个问题及解答(2)
- Linux C 第十五章通信网络编程十个问题及解答(1)
- Linux C第十二章进程控制编程十个问题及解答
- Linux C编程第十四章多线程编程十个问题及解答
- Linux C 第十五章网络编程十个问题及解答(2)
- Linux C 第十一章文件操作十个问题及解答
- 第四章语句十个问题及解答
- 第八章函数十个问题及解答
- linux进程间通信方式及比较
- linux C语言编程----进程间通信
- linux-C编程-进程间通信
- linux-C编程-进程间通信
- [Linux C编程]进程间通信
- Linux C编程--进程间通信(IPC)1--进程间通信机制概述
- [Linux C]多进程编程与进程间通信
- 第五章数组与指针十个问题及解答
- 第七章预处理与结构体十个问题及解答
- !赛车/pk拾五六码走势技巧&~&……
- 生活小记59
- P,NP,NPC,NP-hard问题的概念
- web.xml中load-on-startup的作用
- Linux企业运维人员最常用150个命令汇总
- Linux C 编程第13章进程间通信方式 十个问题及解答(1)
- 强大的BaseRecyclerViewAdapterHelper使用
- javaEE从数据库中取数据的坑2
- 安卓前端+web后端 通信示例 POST (人脸识别)
- [kuangbin带你飞]搜索进阶 G
- Java学习笔记-控制执行流程
- linux下opencv无法正确读取avi视频文件
- 利用Tomcat catalina.policy实现禁止文件读写demo(window版)
- IT男装逼利器:如何像黑客一样聊天 Mojo-Webqq