博客
关于我
[apue] popen/pclose 疑点解惑
阅读量:456 次
发布时间:2019-03-06

本文共 381 字,大约阅读时间需要 1 分钟。

在实际操作中,我们遇到了一个需要注意的细节。当使用pclose关闭管道时,可能会引发进程文件列表无法显示的问题。经过仔细排查,最终发现问题出在于我们在执行pclose之前,未能采取适当的预防措施导致管道被提前关闭。

为了验证这一猜想,我们在执行pclose之前,添加了一个足够长的睡眠时间。通过查看进程文件列表,我们终于看到了预期的结果。其中最引人注目的是,子进程more的管道被重定向到了标准输入(stdin,文件描述符0)。

这一发现为我们进一步分析进程行为提供了重要线索。通过观察,我们发现只有当父进程不关闭与子进程之间的管道时,子进程才会展现出正常的工作状态。更进一步地,这表明more程序并不是立即开始工作,而是需要等待父进程提供完整的输入数据。

这种发现对于理解进程间通信机制具有重要意义,也提醒我们在实际开发中需要更加注意管道的使用方式和关闭顺序。

转载地址:http://wopuz.baihongyu.com/

你可能感兴趣的文章
Python:deepcopy(list) vs new_list = old_list[:]
查看>>
Python:Google API - 从消息中获取 mimeTypes
查看>>
Python:Google API - 从消息中获取 mimeTypes
查看>>
Python:subprocess.call,stdout to file,stderr to file,在屏幕上实时显示stderr
查看>>
Python:TypeError:无法连接“str“和“int“对象
查看>>
Python:XPath 在 ElementTree 中不可用
查看>>
Python:从 FTP 服务器下载文件
查看>>
python:从列表中创建元组列表
查看>>
Python:从嵌套列表中删除重复项
查看>>
Python:从间隔映射到值
查看>>
Python:使用 shell=False 的子进程调用不起作用
查看>>
Python:修改 PATH 环境变量的平台无关方式
查看>>
Python:假与 0
查看>>
Python:函数使用
查看>>
Python:函数进阶
查看>>
Python:在整数的二进制表示中查找最长的二进制间隙
查看>>
Python:如何从二进制转换为 base 64 并返回?
查看>>
Python:如何以非阻塞方式读取子进程的标准输出
查看>>
Python:如何使用 plotly 制作阴影区域或交替背景颜色?
查看>>
Python:如何根据日期时间获取值的计数
查看>>