tty
模塊主要提供了tty.ReadStream
和tty.WriteStream
這兩個類。大多數(shù)情況下,你都不需要直接使用這個模塊。
當io.js
檢測到它運行于TTY上下文中,那么process.stdin
將會是一個tty.ReadStream
實例,process.stdout
將會是一個tty.WriteStream
實例。測試io.js
是否運行在TTY上下文中的一個比較好的辦法是檢查process.stdout.isTTY
:
$ iojs -p -e "Boolean(process.stdout.isTTY)"
true
$ iojs -p -e "Boolean(process.stdout.isTTY)" | cat
false
如果fd
關(guān)聯(lián)了終端,就返回true
,反之返回false
。
已棄用。使用tty.ReadStream#setRawMode()
(如process.stdin.setRawMode()
)代替。
一個net.Socket
子類,代表了一個TTY中的可讀部分。一般情況下,在任何io.js
程序(僅當isatty(0)
為true
時)中,process.stdin
將是僅有的tty.ReadStream
實例。
一個被初始化為false
的布爾值。它代表了tty.ReadStream
實例的“原始”狀態(tài)。
mode
必須為true
或false
。它設定tty.ReadStream
的屬性表現(xiàn)得像原始設備或默認值。isRaw
將會被設置為結(jié)果模式(resulting mode)。
一個net.Socket
子類,代表了一個TTY中的可寫部分。一般情況下,在任何io.js
程序(僅當isatty(1)
為true
時)中,process.stdout
將是僅有的tty.WriteStream
實例。
一個表示了TTY當前擁有列數(shù)的數(shù)字。這個屬性會通過resize
事件被更新。
一個表示了TTY當前擁有行數(shù)的數(shù)字。這個屬性會通過resize
事件被更新。
當列屬性或行屬性被改變時,通過refreshSize()
被觸發(fā)。
process.stdout.on('resize', function() {
console.log('screen size has changed!');
console.log(process.stdout.columns + 'x' + process.stdout.rows);
});
更多建議: