A.<神奇的魔法>
清除螢幕畫面。
工作一段時間後,螢幕可能會充滿各種資訊,看起來亂亂的,這時只要鍵入 clear這個指令,畫面就會變得比較清爽!
B.<圖書館>
libncurses.so.4 => /usr/lib/libncurses.so.4 (0x4001b000) libc.so.6 => /lib/libc.so.6 (0x4005d000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Version information:
/usr/bin/clear:libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
/usr/lib/libncurses.so.4:
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6/lib/libc.so.6:
ld-linux.so.2 (GLIBC_2.1.1) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2
C.<咒語>
clear
D.<示範> | |
---|---|
hi> there | |hi> there | |hi> are many | | are many | | words. | ==> | words. | ==> | hi> | |hi> clear | | __________| |__________| |__________ 凌亂的資訊 鍵入clear 乾淨的畫面 |
|
E.<私房話> | |
1.clear會先查看目前terminal的type, 然後根據/usr/share/terminfo/*/* 中記錄的資訊來清理畫面。 註1:/usr/share/terminfo/*/*為各種terminal的database,是compile後的 結果,記錄terminal各attribute的狀態值,包括memory的情形等等。 註2:tput這個functoin可用來initial或reset一個terminal,也可以query |
terminfo這個datafase,以得到有用的資訊。另外,"tput clear"這個 指令會去呼叫clear的順序(sequence)唷!
2.當螢幕因某些原因無法正常顯示時,可用指令"reset"重設螢幕。 3.以下是一個簡單的clear.c,可以達到和/usr/bin/clear同樣的效果。藉
由這個程式,應該可以稍微了解一下clear工作的原理。 /* program : clear.c
compile : cc clear.c -lncurses -o clear
curses.h : curses(3X) header,定義許多CRT screen handler,例
如setterm、putp、tgetstr等等函式;在使用這個函式庫的開始,
要先呼叫setterm這函式來讀取terminfo database,以initialize
terminfo這個structure,並定義輸出為標準輸出(stdout)。
term.h : terminfo header
TERM : 是一個環境變數,決定了terminal type
tgetstr : 將傳回具"cl"能力的字串,"cl"對應"clear"這個裝置能力
(device capacibilities),其功能可以清除螢幕並使游標回到原點 位置(home),相關的資訊可以man terminfo,。
putp : 將tgetstr的結果(terminfo string)印至標準輸出(stdout)。 */ #include#include #include main() { char s[1024], *ptr = s; setterm(getenv("TERM")); putp(tgetstr("cl",&ptr)); }
F.<問男人.問女人>
clear(1), terminfo(5), term(5), curses(3X), cur_termcap(3X)