[ 博客首页 ]
黄杰, 2019-11-21
root[a]linuxsand.info
近期出差发生了一件很有意思的事情。
工控机上跑着一个命令行程序(该程序具备网络通信功能),它会频繁打印信息到标准输出。由于需要定期查看输出的最新信息,我们习惯按住鼠标左键拖选关键输出(此时进入了 cmd.exe 的快速编辑模式),这样就能高亮显示了,阅读起来轻松些。
看完输出后,人就走开了(此时仍然维持着快速编辑模式)。
不久,我们发现似乎程序在某个时间点,本该收到外部网络数据,但是迟迟收不到。纳闷。
于是不得不中断设备的运行,切到手动模式操作。
后来同事提及,他碰到过类似事情,最后发现在选中 cmd.exe 的输出时,会阻塞程序的运行。
我写了几行代码验证,果然如此。
import time import sys i = 0 while 1: sys.stdout.write('%d select console output\n' % i) i += 1 time.sleep(1)