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。它設(shè)定tty.ReadStream的屬性表現(xiàn)得像原始設(shè)備或默認值。isRaw將會被設(shè)置為結(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);
});