1

我想编写一个程序,它只从 tty 读取用户输入,而不是像passwdssh那样重定向标准输入管道。有什么办法吗?

非常感谢

4

2 回答 2

2

您应该尝试直接打开/dev/tty。这是我确定可以绕过stdin重定向的唯一方法。

/dev/tty通常是到您的实际tty 设备的符号链接,它可能是/dev/console/dev/tty24几乎是您想要的任何东西,这取决于您的系统可能设置的奇怪而奇妙的方式。该tty命令应该能够告诉您它是哪一个(将使用 列出符号链接本身ls -al /dev/tty)。

但只要您打开dev/tty输入,它应该从您的终端而不是标准输入流中获取输入,标准输入流可能已被重定向。

于 2010-05-05T08:33:25.083 回答
1

您可以将 isatty(man 3 isatty) 与 fileno() 结合使用:

   #include <unistd.h>

   int isatty(int fd);
于 2010-05-05T09:39:20.370 回答