问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Linux管道通信问题

发布网友 发布时间:2022-05-10 13:27

我来回答

1个回答

热心网友 时间:2023-10-10 07:29

管道创建的时候读端和写端就已经打开了,不需要再次打开。
fork()之后就变成两个进程了,子进程会继承父进程调用fork()之前打开的所有文件描述符(管道也是文件,一种特殊的文件)。
在进程控制块中有一个数组标识了所有该进程已打开的文件,而文件描述符实际上就是这个数组的下标。
但是,一定要记得这是两个进程,也就是说现在有两个进程都打开了这个管道。在一个进程中关闭它的读端或者写端并不会影响另一个进程中该管道的状态。对这个示例程序来说就是:在父进程中关闭读端,但是在子进程中读端还是打开的。同理,在子进程中关闭写端也并不会影响父进程,在父进程中写端仍然是打开的。
fork()之后两个进程都有可能得到调度运行,至于谁先得到调度谁后得到调度则是不确定的,每次的结果可能都不一样(即使在子进程中调用了sleep函数也不一定能保证父进程先得到调度)。管道是同步的进程间通信方式,也就是说写端调用write往管道中写入消息的时候进程会被阻塞在write函数上,只有当读进程把管道中的消息取走之后才会返回(严格来说是进入就绪状态)。
关于linux api你可以看看我在百度知道上共享的《Linux内核源代码情景分析》,里面有详细的描述。 建议多看看进程管理和进程间通信那两章,了解进程的四要素和同步/异步的区别。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... linux 命名管道打开时什么时候用o word表格字体编辑的123? linux下为什么创建管道成功,打开管道却失败呢 为什么word表格中输入0123,只有123显示,怎么显示0123 使用linux管道文件操作时,应注意哪些 linux中fifo管道 中国现在有多少基金平台 中国现在又多少只基金 买了一对NIKE不到一个月,右鞋鞋头表面的皮已经裂开了,怎么办 虎牙男扮女装笑声很恐怖老说东方不败的主播叫什么? 什么是金融呢? i5的比酷睿四核Q8300好吗 Q8300和i7那个好 我最爱吃香蕉写话 为什么我在吃香蕉钱闻到那个味道会咳嗽啊。 可以吃香蕉吗?我每天都在吃啊。 我们在吃香蕉时,吃不到种子,但它也是种子植物。这句话对吗? 在外语里我在吃香蕉和牛奶怎么说 我在吃香蕉韩语 我正在吃香蕉的英文? 无条件的爱怎么理解 什么是无条件的爱呢? 爱是有条件的还是无条件的 爱到底是有条件的还是无条件的呢 什么是无条件的爱? 爱是无条件的吗? 爱情是有条件的,还是无条件的? 请从心理学角度分析无条件的爱 什么是爱 有没有没有条件的爱 爱情是有条件的吗? 高陵胖嫂土豆片夹馍加盟 刘大饼土豆片夹馍加盟怎么样? 爱,总是有条件的。对吗? 爱一个人是有条件的,条件是? 盛林记土豆片夹馍加盟总店在哪里 为什么说母爱是无条件的,而父爱是有条件的? 门师傅香辣土豆片夹馍加盟费多少 无条件的爱,就是要完全满足他的要求吗? 爱一个人是有条件的吗?为什么? 洋芋片夹馍的相关文章