有没有办法通过系统调用来确定STDIN是否是TTY?

rat*_*olt 5 linux macos assembly system-calls

我知道有这个int isatty(int filedes)函数,但是这个在标准C库中。我想通过在 Linux 和 OSX 中进行系统调用来确定 STDIN 是否是 TTY(我正在汇编中编写 FORTH,并且不想链接到 C 库)。

小智 3

isatty()通过尝试在文件描述符上执行TCGETS ioctl来工作。如果成功,则为 TTY。

  • 但在 BSD 版本(如 OS X)中,它是 TIOCGETA,而不是 TCGETS。 (5认同)