dev.to | 📄 原文链接 | 2026-09-29 收录

我把放行所有人的闸门换成谁都不放行的闸门,测试却看不出区别

来源:dev.to — 2026-09-28

📋 概述

在终端里跑一下 `python3 -c 'import sys; print(sys.stdin.isatty(), sys.stdout.isatty())'`,再在 script(1) 下跑一遍,结果会不一样。作者指出:用 isatty() 判断「眼前是否有人」,再从 /dev/tty 读取这个人的确认输入,这其实是两个不同的问题,而有些进程对它们给出不同答案。文章讲的是他在同一个文件里三次撞上这个坑的经历,每一次都是因为上一次的修复以测试看不出来的方式错了——他造出一个谁都进不来的闸门,测试却依然全绿。

🔑 核心要点

💡 金句

如果用调用 isatty() 来判断有没有人在,然后从 /dev/tty 读取这个人的确认,那是两个不同的问题——而有些进程会给它们不同的答案。
← 返回 dev.to 首页