【发布时间】:2011-10-30 06:01:38
【问题描述】:
在我的 python 脚本的开头我这样做:
if '-' in args:
fd = os.fdopen(os.dup(0))
sys.stderr.write(fd.read())
fd.close()
我认为这不会影响我的程序其余部分的行为,但它似乎,即如果我注释掉这 4 行,我的代码可以工作,但如果它们被执行,那么我的程序会有意想不到的结果(我' m 难以排除故障)。
我是否错误地使用了 os.dup?
谢谢。
【问题讨论】:
-
您的问题不完整,没有描述您在排除故障时遇到的“意外结果”。
-
我以前见过这种模式!他试图偷看他的输入是什么,但在他的程序的其余部分可以读入之前没有“用完”。我承认,在我自己的 Unix 青年时代,我自己尝试过一次,然后才意识到 文件描述符和实际文件是两个完全不同的东西? :)