2017-01-28 81 views
3

我知道有int isatty(int filedes)函數,但是這個在標準的C庫中。我想通過在Linux和OSX中進行系統調用來確定STDIN是否是TTY(我正在編寫一個FORTH程序集,並且我不想鏈接到C庫)。有沒有辦法通過系統調用來確定STDIN是否是TTY?

+2

libc將大部分平臺系統調用差異抽象出來。你可能想重新考慮不使用它,否則你最終會重寫大部分內容。 – Keith

+0

你看過libc的實現,看看'isatty'是如何實現的嗎? – fuz

回答

1

isatty()通過嘗試在文件描述符上執行the TCGETS ioctl來工作。如果成功了,那就是TTY。

+4

但是在BSD風格(如OS X)中,它是TIOCGETA,而不是TCGETS。 – Netch

相關問題