3
我知道有int isatty(int filedes)
函数,但是这个在标准的C库中。我想通过在Linux和OSX中进行系统调用来确定STDIN是否是TTY(我正在编写一个FORTH程序集,并且我不想链接到C库)。有没有办法通过系统调用来确定STDIN是否是TTY?
我知道有int isatty(int filedes)
函数,但是这个在标准的C库中。我想通过在Linux和OSX中进行系统调用来确定STDIN是否是TTY(我正在编写一个FORTH程序集,并且我不想链接到C库)。有没有办法通过系统调用来确定STDIN是否是TTY?
isatty()
通过尝试在文件描述符上执行the TCGETS ioctl来工作。如果成功了,那就是TTY。
但是在BSD风格(如OS X)中,它是TIOCGETA,而不是TCGETS。 – Netch
libc将大部分平台系统调用差异抽象出来。你可能想重新考虑不使用它,否则你最终会重写大部分内容。 – Keith
你看过libc的实现,看看'isatty'是如何实现的吗? – fuz