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