亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? scounix下curses編程函數說明.htm

?? curses界面編程
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
<HTML><HEAD><TITLE>Douzhe.com/SCO精華版文章/精華版:scounix下curses編程函數說明;兄弟拿出來共享的別客氣</TITLE><META http-equiv=Content-Type content="text/html; charset=gb2312"><style>BODY {	FONT-SIZE: 9pt; FONT-FAMILY: "MS Shell Dlg";}P {	FONT-SIZE: 9pt; FONT-FAMILY: "MS Shell Dlg"}SELECT {	FONT-SIZE: 9pt; FONT-FAMILY: "MS Shell Dlg"}TD {	FONT-SIZE: 12px; FONT-FAMILY: "MS Shell Dlg"}INPUT {	FONT-SIZE: 9pt; FONT-FAMILY: 宋體; verdana: }TEXTAREA {	FONT-SIZE: 9pt; FONT-FAMILY: 宋體; verdana: }TEXTAREA {	FONT-SIZE: 9pt; FONT-FAMILY: 宋體; verdana: }.input1 {	BORDER-RIGHT: #085d3f 1px solid; BORDER-TOP: #085d3f 1px solid; BORDER-LEFT: #085d3f 1px solid; BORDER-BOTTOM: #085d3f 1px solid; BACKGROUND-COLOR: white}A {	FONT-SIZE: 9pt; TEXT-TRANSFORM: none; COLOR: #000000; TEXT-DECORATION: none}A.lefta {	FONT-SIZE: 9pt; TEXT-TRANSFORM: none; COLOR: #ffffff; TEXT-DECORATION: none}A.flink {	FONT-SIZE: 9pt; TEXT-TRANSFORM: none; COLOR: #000000; TEXT-DECORATION: none}A.lefta:hover {	COLOR: #c0c0c0; TEXT-DECORATION: none}A:hover {	COLOR: red; TEXT-DECORATION: none}A:visited {	TEXT-DECORATION: none}.smallsize {	FONT-SIZE: 9px; COLOR: #d9d9d9; FONT-FAMILY: "verdana"}LI {	FONT-SIZE: 9pt; LINE-HEIGHT: 15pt}.tt2 {	FONT-SIZE: 9pt; LINE-HEIGHT: 16pt}.tt1 {	FONT-SIZE: 14px}.tt3 {	FONT-SIZE: 9pt; LINE-HEIGHT: 13pt}A.hb {	FONT-SIZE: 9pt; COLOR: #000000; LINE-HEIGHT: 10pt}A.tt1 {	COLOR: #000000; TEXT-DECORATION: none}</style><BODY ><center><table width=750 border="0" cellspacing="0" cellpadding="0" align="center">  <tr>     <td>      <div align="center"><img src="http://www.douzhe.com/images/biglogo.gif" border=0 alt="Douzhe.com"><br>在 學 習 UNIX 的 道 路 上 有 南 非 蜘 蛛 陪 伴 所 以 不 寂 寞</div><br>    </td>  </tr>  <tr>     <td>            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>              <TBODY>              <TR>                <TD width="100%" bgColor=#49ADE9 height=17>                <FONT color=#ffffff>&nbsp;&gt;&gt; <A href="http://www.douzhe.com"><FONT color=#ffffff>DouZhe.com</FONT></A> >                <A href="http://www.douzhe.com/bbs/forums.cgi?forum=4"><FONT color=#ffffff>SCO</FONT></A>                </TD>              </TR>              </TBODY>              </TABLE>      </td>  </tr></table><table width=750 border="0" cellspacing="0" cellpadding="0" align="center">  <tr>     <td><SPAN style="FONT-SIZE: 14px"><BR>            <CENTER><B>精華版:scounix下curses編程函數說明;兄弟拿出來共享的別客氣 </B></CENTER><BR></div>    </td>  </tr>  <tr>     <td>      <div align="center">作者:<a href=http://www.douzhe.com/bbs/profile.cgi?action=show&member=小肚子 target=_blank>小肚子</a>  &nbsp;&nbsp;&nbsp;&nbsp;發表時間:2002/09/02 09:37am</div><br>    </td>  </tr>    <tr>     <td align=center>            <TABLE cellSpacing=0 cellPadding=0 width="90%" border=0>              <TBODY>              <TR>		<td><SPAN style="FONT-SIZE: 14px">		INDDW*curscr:當前屏幕<br>WINDOW &nbsp;*stdscr:標準屏幕<br>int LINES:終端上的行數<br>int COLS:終端上的列數<br>bool &nbsp;TRUE:真標志,1<br>bool &nbsp;FALSE:假標志,0<br>int &nbsp;ERR:錯誤標志,-1<br>int &nbsp;OK:OK標志,0<br>---------------------------------------------<br>win:WINDOW &nbsp;*<br>bf:bool<br>ch:chty &nbsp;pe<br>str:char &nbsp;*<br>chstr:chty &nbsp;pe*<br>fmt:char &nbsp;*<br>否則:int &nbsp;<br>---------------------------------------------<br>初始化<p>WINDOW &nbsp;*initscr()<br>SCREEN*newterm(char &nbsp;*type, FILE &nbsp;*outfd, FILE &nbsp;*infd)<br>對用戶訪問的每個終端都應該調用newterm<br>t y p e是終端的名稱,包括在$ T E R M中(如ansi, xterm, vt100等等)<br>SCREEN*set_term(SCREEN &nbsp;*new)<br>用戶可以切換當前終端。所有的函數都將在設置的當前終端上起作用。<br>int &nbsp; &nbsp;endwin()<br>退出程序之前,關閉所有打開的窗口。<br>之后還可以調用refresh(),<br>int &nbsp; &nbsp;isendwin()<br>ifendwin()-&amp;gt&#59;refresh(),TRUE,|FALSE。<br>-----------------------<br>WINDOW &nbsp;*newwin(nlines,ncols,begy,begx)<br>begy和begx是窗口左上角的坐標。nlines是一個整數,<br>存放著行的數目,而ncols,存放著列的數目。<br>所有的參數設置為零,則打開的窗口的大小將與屏幕的大小相同。<br>int &nbsp; &nbsp;delwin(win)<br>它刪除窗口win。如果存在子窗口,以前先要刪除這些子窗口。這個函數將<br>釋放win所占據的所有資源。在調用endwin()之前用戶應該刪除所有的窗口<br>int &nbsp; &nbsp;mvwin(win,by,bx)<br>它將把窗口移到坐標(by,bx)處。如果把窗口移出屏幕邊界的范圍,則ERR<br>WINDOW &nbsp;*subwin(origwin,nlines,ncols,begy,begx)<br>它返回一個位于origwin窗口中間的子窗口。如果用戶改變這兩個窗口<br>(origwin或者那個新窗口)中的一個,則這種改變將會同時反映到這兩<br>個窗口上。在下一次調用refresh()之前,先要調用touchwin(origwin)<br>begx和begy是相對于屏幕的,而不是相對于origwin的。<br>WINDOW &nbsp;*derwin(origwin,nlines,ncols,begy,begx)<br>此函數與subwin(.)相同,只不過這里的begx和begy是相對于origwin的,而不是相對于屏幕的。<br>mvderwin(win,y,x)<br>此函數將把win移到父窗口內。(注意:此函數尚未實現)。<br>WINDOW &nbsp;*dupwin(win)<br>此函數復制窗口win。<br>int &nbsp; &nbsp;overlay(win1,win2)<br>將把win1中的所有文本拷貝到win2中,但是不拷貝空格。<br>int &nbsp; &nbsp;overwrite(win1,win2)<br>也是做文本拷貝工作的函數,但它拷貝空格。<br>int &nbsp; &nbsp;copywin(win1,win2,sminrow,smincol,dminrow,<br>dmincol,dmaxrow,dmaxcol,overlay)<br>它所做的工作與overlay(.)和overwrite(.)相似,但是該函數還可以讓程序員選擇拷貝窗口的哪個區域。<br>int &nbsp;addch(ch)<br>int &nbsp;waddch(win,ch)<br>int &nbsp;mvaddch(y,x,ch)<br>int &nbsp;mvwaddch(win,y,x,ch)<br>----------------<br>int &nbsp;addstr(str)<br>int &nbsp;addnstr(str,n)<br>int &nbsp;waddstr(win,str)<br>int &nbsp;waddnstr(win,str,n)<br>int &nbsp;mvaddstr(y,x,str)<br>int &nbsp;mvaddnstr(y,x,str,n)<br>int &nbsp;mvwaddstr(win,y,x,str)<br>int &nbsp;mvwaddnstr(win,y,x,str,n)<br>-----------------------------<br>int &nbsp;addchstr(chstr)<br>int &nbsp;addchnsrtr(chstr,n)<br>int &nbsp;waddchstr(win,chstr)<br>int &nbsp;waddchnstr(win,chstr,n)<br>int &nbsp;mvaddchstr(y,x,chstr)<br>int &nbsp;mvaddchnstr(y,x,chstr,n)<br>int &nbsp;mvwaddchstr(win,y,x,chstr)<br>int &nbsp;mvwaddchnstr(win,y,x,chstr,n)<br>*****chstr是指向ch type數組的一個指針。*****<br>---------------------------<br>int &nbsp;echochar &nbsp;(ch)<br>int &nbsp;wechochar &nbsp;(win,ch)<br>---------------------------<br>int &nbsp;printw(fmt,..)<br>int &nbsp;wprintw(win.fmt,....)<br>int &nbsp;mvprintw(y,x,fmt,...)<br>int &nbsp;mvwprntw(win,y,x,fmt,..)<br>---------------------------<br>int &nbsp;insch(c)<br>int &nbsp;winsch(win,c)<br>int &nbsp;mvinsch(y,x,c)<br>int &nbsp;mvwinsch9win,y,x,c)<br>這些函數把字符ch插入到光標的左邊,<br>光標后面的所有字符則向右移動一個位置。<br>在這一行最右端的字符可能會丟失。<br>---------------------------<br>int &nbsp;insert()<br>int &nbsp;winsert(win)<br>在當前行的上方插入一個空行(最底下的一行將被丟失)。<br>---------------------------<br>int &nbsp;insdelin(n)<br>int &nbsp;winsdelln(win,n)<br>如果n為正數,則這些函數將在適當的窗口的當前光標上方插入n行<br>(這樣一來最底下的n行將丟失);如果n為負數,則光標下面的n行將被刪除,<br>余下的行將上升,頂替它們的位置。這些函數將在當前光標的左邊插入str<br>(字符的個數不能超過一行的限度)。在光標右邊的字符將右移,如果到達行<br>尾,則字符將丟失,光標位置不變。y和x是指在插入str以前先要把光標移動<br>到的坐標,n是要插入的字符的數目(如果n為0則插入整個字符串)。<br>---------------------------<br>int &nbsp;insstr(str)<br>int &nbsp;insnstr(str,n)<br>int &nbsp;winsstr(win,str)<br>int &nbsp;winsnstr(win,str,n)<br>int &nbsp;mvinsstr9y,x,str)<br>int &nbsp;mvinsnstr(y,x,str,n)<br>int &nbsp;mvwinsstr(win,y,x,str)<br>int &nbsp;mvwinsnstr(win,y,x,str,n)<br>這些函數將在當前光標的左邊插入str(字符的個數不能超過一行的限度)。<br>在光標右邊的字符將右移,如果到達行尾,則字符將丟失,光標位置不變。<br>y和x是指在插入str以前先要把光標移動到的坐標,n是要插入的字符的數目<br>(如果n為0則插入整個字符串)。<br>---------------------------<br>int &nbsp;delch()<br>int &nbsp;wdelch(win)<br>int &nbsp;mvdelch(y,x)<br>int &nbsp;mvwdelch(win,y,x)<br>刪除光標左邊的字符,并把光標右邊余下的字符向左移動一個位置。<br>y和x是在進行刪除操作以前要把光標移動到的坐標。<br>int &nbsp;deleteln()<br>int &nbsp;wdeleteln(win)<br>刪除光標下面的一行,并把下面所有的其他行都向上移動一個位置。<br>此外,屏幕最底下的一行將被清除。<br>-----------------------------<br>方框和直線<p>int &nbsp;border(ls,rs,ts,bs,tl,tr,bl,br)<br>int &nbsp;wborder(win,ls,rs,ts,bs,tl,tr,bl,br)<br>int &nbsp;box(win,vert,hor)<br>這些函數在窗口的邊界(或者win的邊界)畫上方框。在下面的表格中,<br>讀者將可以看到字符,以及它們的默認值。當用零去調用box(.)時將<br>會用到這些默認值。在下面的圖中讀者可以看到方框中字符的位置<br>-------------<br>int &nbsp;vline9ch,n)<br>int &nbsp;wvline(win,ch,n)<br>int &nbsp;hline(ch,n)<br>int &nbsp;whline(win,ch,n)<br>這些函數將從當前光標位置開始畫一條水平線或者垂直線。<br>ch是畫線所使用的字符,n是要畫的字符的個數,光標位置并不移動。<br>--------------------------<br>void &nbsp;bkgdset(ch)<br>void &nbsp;wbkgdset(win,ch)<br>這兩個函數設置窗口或者屏幕的背景字符和屬性。ch的屬性將和窗口中<br>所有非空格的字符的屬性進行OR操作。背景是窗口的一部分,<br>將不會隨著滾動、輸入或輸出而改變<br>int &nbsp;bkgd(ch)<br>int &nbsp;wbkgd(win,ch)<br>---------------------------------<br>int &nbsp;getch()<br>int &nbsp;wgetch()<br>int &nbsp;mvgetch(y,x)<br>int &nbsp;mvwgetch(win,y,x)<br>getch()將從終端讀取輸入,讀取的方式取決于是否設置了延遲模式。<br>如果設置了延遲模式,則getch()將一直等待,直到用戶按下一個鍵為止;<br>如果沒有設置延遲模式,則它將返回輸入緩沖區中的數據,如果輸入緩沖區<br>為空,則它將返回ERR。mvgetch(.)和mvwgetch(.)首先把光標移動到位置<br>(y,x)上。名稱中有w字母的函數將從與窗口win相關的終端讀取輸入,<br>getch()和mvgetch(.)則從屏幕相關的終端讀取。如果使能了keypad(.)<br>在用戶按下某個功能鍵時,getch()將返回一個代碼,該代碼在.h頭文件中被<br>定義為KEY_*宏。如果用戶按下Esc鍵(它可能會是某個組合功能鍵的第<br>一個鍵),則ncurses將啟動一個否則就返回功能鍵的值。(如果需要的話,<br>可以使用notimeout()來關閉第二個定時器<br>int &nbsp;ungetch()<br>這個函數將把字符ch送回輸入緩沖區。<br>---------------------<br>int &nbsp;getstr(str)<br>int &nbsp;wgetstr(win,str)<br>int &nbsp;mvgetstr(y,x,str)<br>int &nbsp;mvwgetstr(win,y,x,str)<br>int &nbsp;wgetnstr(win,str,n)<br>這些函數的作用相當于對getch()進行一系列的調用,直到接收到一個新行。<br>行中的字符存放在str中(所以,在調用getstr(.)之前,不要忘記給字符指針<br>分配內存)。如果打開了回送,則字符串將被顯示出來(使用noecho()可以關<br>閉回送)而用戶的刪除字符以及其他特殊字符也會被解釋出來<br>-----------------<br>chty &nbsp;peinch(0<br>chty &nbsp;pewinch(win)<br>chty &nbsp;pemvinch(y,x)<br>chty &nbsp;pemvwinch(win,y,x)<br>這些函數從屏幕或窗口返回一個字符,因為返回值的類型是chty &nbsp;pe,<br>所以還包括了屬性信息。這一信息可以使用常量A_*從字符中擴展得到。<br>-------------------<br>int &nbsp;scanw(fmt,...)<br>int &nbsp;wscanw(win,fmt,...)<br>int &nbsp;mvscanw(y,x,fmt,...)<br>int &nbsp;mvwscanw(win,y,x,fmt,...)<br>int &nbsp;vwscanw(win,fmt,va_list.)<br>----------------------------<br>輸出選項<br>int &nbsp;idlok9win,bf)<br>void &nbsp;fdcok(win.bf)<br>這兩個函數為窗口使能或者關閉終端的insert/delete特征(idlok(.)針對一<br>行,而idcok(.)則針對字符)。(注:idcok(.)尚未實現)<br>void &nbsp;immedok(win,bf)<br>bf設置為TRUE,則對窗口win的每一次改變都將導致物理屏幕的一次刷新。<br>這將使程序的性能降低,所以默認的值是FALSE。(注:此函數尚未實現)<br>int &nbsp;clearok(win,bf)<br>如果bf值為TRUE,則下一次調用wrefresh(win)時將會清除屏幕,<br>并完全地把它重新畫一遍(就像用戶在編輯器vi中按下Ctrl+L一樣)。<br>int &nbsp;leaveok(win,bf)<br>默認的行為是,ncurses讓物理光標停留在上次刷新窗口時的同一個位置上。<br>不使用光標的程序可以把leaveok(.)設置為TRUE,這樣一般可以節省光標<br>移動所需要的時間。此外,ncurses將試圖使終端光標不可見。<br>int &nbsp;nl()<br>int &nbsp;nonl()<br>這兩個函數控制新行的平移。使用nl()可以打開平移,這樣在回車時就會<br>平移到新的一行,在輸出時就會走行。而nonl()可以把平移關上。<br>關上平移之后,ncurses做光標移動操作時速度就會快一些。<br>------------------------------<br>輸入選項<p>int &nbsp;keypad(win,bf)<br>bf為TRUE,函數在等待輸入時會使能用戶終端的鍵盤上的小鍵盤。<br>ncurses將返回一個鍵代碼,該代碼在.h頭文件中被定義為KEY_*宏,<br>它是針對小鍵盤上的功能鍵和方向鍵的。對于PC鍵盤來說,<br>這一點是非常有幫助的,因為這樣用戶就可以使能數字鍵和光標鍵。<br>int &nbsp;meta(win.bf)<br>bf為TRUE,從getch()返回的鍵代碼將是完整的8位(最高位將不會被去掉)<br>int &nbsp;cbreak()<br>int &nbsp;nocbreak()<br>int &nbsp;crmode()<br>int &nbsp;nocrmode()<br>cbreak()和nocbreak()將把終端的CBREAK模式打開或關閉。如果CBREAK打開則程序就可以立刻使用讀取的輸入信息。如果CBREAK關閉,則輸入將被緩存<br>起來,直到產生新的一行(注意:crmode()和nocrmode()只是為了提供向上兼容性,不要使用它們)<br>int &nbsp;raw()<br>int &nbsp;noraw()<br>這兩個函數將把RAW模式打開或關閉。RAW與CBREAK相同,<br>它們的區別在于RAW模式不處理特殊字符。<br>int &nbsp;echo()<br>int &nbsp;noecho()<br>如果把echo()設置為TRUE,則用戶所敲的輸入將會回送并顯示出來,<br>而noecho()則對此保持沉默。<br>int &nbsp;halfdelay(t)<br>此函數與cbreak()相似,但它要延遲t秒鐘。<br>int &nbsp;nodelay(win,bf)<br>終端將被設置為非阻塞模式。如果沒有任何輸入則getch()將返回ERR,<br>否則如果設置為FALSE,則getch()將等待,直到用戶按下某個鍵為止。<br>int &nbsp;timeout(t)<br>int &nbsp;wtimeout(win,t)<br>筆者提倡大家使用這兩個函數,而不要使用halfdelay(t)和nodelay(win,bf)getch()的結果取決于t的值。如果t是正數,則讀操作將被阻塞t毫秒;<br>如果t為零,則不發生任何阻塞&#59;如果t是負數,則程序將阻塞,直到有輸入為止<br>int &nbsp;notimeout(win,bf)<br>如果bf為TRUE,則getch()將使用一個特殊的定時器(一秒鐘長)。到時間以后<br>再對以Esc等鍵打頭的輸入序列進行解釋。<br>int &nbsp;typeahead(fd)<br>如果fd是-1,則不檢查超前鍵擊,否則ncurses將使用文件描述符fd來進行這些檢查<br>int &nbsp;int &nbsp;rflush(win,bf)<br>當bf為TRUE時使能該函數。在終端上按下任意中斷鍵(quit、break.)時,<br>所有的輸出將會刷新到tty驅動程序隊列中。<br>&lt;/Content&gt;<br>&lt;/Issue&gt;<br>&lt;Replys&gt;<br>&lt;Reply&gt;<br>&lt;PostUserNickName&gt;&lt;/PostUserNickName&gt;<br>&lt;rank&gt;四級(中級)&lt;/rank&gt;<br>&lt;ranknum&gt;user4&lt;/ranknum&gt;<br>&lt;credit&gt;97&lt;/credit&gt;<br>&lt;ReplyID&gt;6339214&lt;/ReplyID&gt;<br>&lt;TopicID&gt;984818&lt;/TopicID&gt;<br>&lt;PostUserId&gt;202193&lt;/PostUserId&gt;<br>&lt;PostUserName&gt;qisiwole&lt;/PostUserName&gt;<br>&lt;Point&gt;0&lt;/Point&gt;<br>&lt;Content&gt;------------------------------<br>終端屬性<br>int &nbsp;baudrate()此函數返回終端的速度,以bps為單位。<br>char &nbsp;erasechar()此函數返回當前刪除的字符。<br>char &nbsp;killchar()此函數返回當前殺死的字符。<br>int &nbsp;has_ic()<br>int &nbsp;has_il()如果終端具有插入/刪除字符的能力,則has_rc()將返回TRUE如果終端具有插入/刪除行的能力,則has_il()將返回TRUE,<br>否則這兩個函數將返回ERR。(注:尚未實現)<br>char &nbsp;*longname()此函數所返回的指針允許用戶訪問當前終端的描述符。<br>chty &nbsp;petermattrs()(注:此函數尚未實現)<br>char &nbsp;*termname()這個函數從用戶環境中返回TERM的內容。(尚未實現)<br>--------------------------------<br>更新終端<br>int &nbsp;refresh()<br>int &nbsp;wrefresh(win)<br>refersh()將把窗口映像拷貝到終端,而wrefresh(win)將把窗口映像<br>拷貝到win,并使它看起來象原來的樣子。<br>int &nbsp;wnoutrefresh(win)<br>int &nbsp;doupdate()<br>wnoutrefresh(win)將會只拷貝到窗口win,這意味著在終端上將不進行任何輸出,但是虛擬屏幕實際上看起來象程序員所希望的那樣。doupdate()將輸<br>出到終端上。程序可以改變許多窗口,對每個窗口都調用一次<br>wnoutrefresh(win),然后再調用一次doupdate()來更新物理屏幕。<br>int &nbsp;redrawln(win)<br>int &nbsp;wredrawln(win,bline,blines)<br>如果在往屏幕上輸出新內容時需要清除一些行或者整個屏幕,可以使用這兩<br>個函數。(可能這些行已經被破壞了或者由于其他的原因。)<br>int &nbsp;touchwin(win)<br>int &nbsp;touchline(win,start,count)<br>int &nbsp;wtouchln(win,y,n,changed)<br>int &nbsp;untouchwln(win)<br>這些函數通知ncurses整個win窗口已經被改動過了,或者從start直到<br>start+count的這些行已經被改動過了。例如,如果用戶有一些重疊的窗口<br>(正如在example.c中一樣),對某個窗口的改動不會影響其他窗口的映像。<br>wtouchln(.)<br>將按掀從y開始的n行。如果change的值是TRUE,則這些行被按掀過了,<br>否則就還未被按掀過(改變或未改變)。<br>untouchwin(win)將把窗口win標記為自上次調用refresh()以來還未被按掀。<br>int &nbsp;ls_linetouched(win,line)<br>int &nbsp;ls_wint &nbsp;ouched(win)<br>通過使用這兩個函數,用戶可以檢查自從上次調用refresh()以來,<br>第line行或者窗口win是否已被按掀過。<br>-------------------------------<br>視頻屬性與顏色<br>ncurses定義了八種顏色,在帶有彩色支持的終端上用戶可以使用這些顏色。<br>首先,調用start_color()初始化顏色數據結構,<br>然后使用has_colors()檢查終端權能。<br>start_color()將初始化COLORS和COLOR_PAIR。<br>前者是終端所支持的最多的顏色數目,而后者是用戶可以定義的色彩對的最大數目。<br>兩個屬性可以使用OR操作組合起來。“COLORPAIRS_1COLORS_1”<p>int &nbsp;color_content(color,t,g,b)<p>此函數獲取color的顏色成份r,g和b。<br>首先,函數CheckColor調用start_color()初始化顏色,如果當前終端有彩色的話,<br>則函數has_colors()將返回TRUE。我們檢查了這一點以后,調用init_pair(.)<br>把前景色和背景色組合起來,再調用wattrset(.)為特定的窗口設置這些顏色對。<br>此外,如果我們使用的是黑白終端,還可以單獨使用wattrset(.)來設置屬性。<br>如果要在xterm中獲取顏色,我認為最佳方法是使用ansi_xterm,<br>以及來自MidnightCommander的terminfo項目。用戶可以獲取ansi_xterm<br>和MidnightCommander的源代碼(mc_x.x.tar.gz),然后編譯ansi_xterm,<br>并對mc_x.x.tar.gz文檔中的xterm.ti和vt100.ti使用tic命令。<br>執行ansi_xterm,把它試驗出來<p>---------------------------------<br>光標和屏幕坐標<p>int &nbsp;move(y,x)<br>int &nbsp;wmove(win,y,x)<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; move()將移動光標,而wmove(win)則從窗口win中移動光標。對<br>輸入/輸出函數來說,還定義了其他的一些宏,在調用特定函數之前,<br>這些宏可以移動光標。<p>int &nbsp;curs_set(bf) &nbsp; &nbsp;這個函數將把光標置為可見或者不可見,如果終端有這個功能<br>void &nbsp;getyx(win,y,x) &nbsp; &nbsp; getyx(.)將返回當前光標位置。(注意:這是一個宏)<br>void &nbsp;getparyx(win,y,x)<br>如果win是個子窗口,getparyx(.)將把該窗口對應父窗口的坐標存儲在y和x則y和x都將為-1。(注:此函數尚未實現)<p>void &nbsp;getbegyx(win,y,x)<br>void &nbsp;getmaxyx(win,y,x)<br>int &nbsp;getmaxx(win)<br>int &nbsp;getmaxy(win)<br>這些函數把窗口win的開始坐標和大小坐標存放在y和x中。<br>int &nbsp;getsyx(int &nbsp;y,int &nbsp;x)<br>int &nbsp;setsyx(int &nbsp;y,int &nbsp;x)<br>getsyx(.)把虛擬屏幕光標存放在y和x中,而setsyx(.)則設置這個坐標。<br>如果y和x是-1, 用戶調用getsyx(.)將會設置leaveok。<p>------------------------------<br>滾動<p>int &nbsp;tscrollok(win,bf)<br>當光標在屏幕的右下角并且輸入了一個字符(或者新的一行)時,如bf為TRUE則窗口win中的文本將上滾一行。如果bf為FALSE,則鼠標留在原來的位置上<br>當滾動特征打開時,使用下面的函數可以滾動窗口中的內容。<br>(注意:當用戶在窗口的最<br>后一行輸入一個新行時,也應該發生相應的滾動操作,<br>所以在使用scrollok(.)時要十分小心,<br>否則可能會得到出乎意料的結果。)<br>int &nbsp;scrol(win)<br>此函數將使窗口向上滾動一行(數據結構中的行也向上滾動)。<br>int &nbsp;acrl(n)<br>int &nbsp;wscrl(win,n)<br>這兩個函數將使屏幕或者窗口win向上向下滾動,滾動方向取決于整數n的值<br>如果n是正數,則窗口向上滾動n行,否則如果n是負數,則窗口向下滾動n行<br>int &nbsp;setscrreg(t,b)<br>int &nbsp;wsetscrreg(win,t,b)<br>這兩個函數設置一個軟滾動區。<br>-------------------------------------<br>小鍵盤<p>WINDOW &nbsp;*newpad(nlines,ncols)<br>WINDOW &nbsp;*subpad(orlg,nlines,ncols,begy,begx)<br>int &nbsp;prefresh(pad,pminrow,pmincol,sminrow,smincol,smaxrow,smaxcol)<br>int &nbsp;pnoutrefresh(pad,pminrow,pmincol,sminrow,smincol,smaxrow,smaxcol)<br>int &nbsp;pechochar &nbsp;(pad,ch)<br>----------------------------<br>軟標簽<p>int &nbsp;slk_init(int &nbsp;fmt)<br>int &nbsp;slk_set(int &nbsp;labnum,char &nbsp;*label,int &nbsp;fmt)<br>int &nbsp;slk_refresh()<br>int &nbsp;slk_noutrefresh()<br>char &nbsp;*slk_label(int &nbsp;labnum)<br>int &nbsp;slk_clear()<br>int &nbsp;slk_restore()<br>int &nbsp;slk_touch()<br>int &nbsp;slk_attron(chty &nbsp;peattr)<br>int &nbsp;slk_attrset(chty &nbsp;peattr)<br>int &nbsp;slk_attroff(chty &nbsp;peattr)<br>這些函數是與attron(attr)、attrset(attr)和attroft(attr)相對應的,<br>但它們尚未實現。<br>------------------------------<br>int &nbsp;beep()<br>int &nbsp;flash()<br>char &nbsp;*unctrl(chty &nbsp;pec)<br>char &nbsp;*keyname(int &nbsp;c)<br>int &nbsp;filter()<br>(注:以上函數尚未實現。)<br>void &nbsp;use_env(bf)<br>int &nbsp;putwin(WINDOW &nbsp;*win,FILE*filep)<br>(注:以上函數尚未實現。)<br>WINDOW &nbsp;*getwin(FILE*filep)<br>(注:以上函數尚未實現。)<br>int &nbsp;delay_output(int &nbsp;ms)<br>int &nbsp;flushinp()<br>--------------------------------------<br>低級訪問<p>int &nbsp;def_prog_mode()<br>int &nbsp;def_shell)_mode()<br>int &nbsp;reset_prog_mode()<br>int &nbsp;reset_shell_mode()<br>int &nbsp;resetty()<br>int &nbsp;savetty()<br>int &nbsp;ripoffline(int &nbsp;line,int &nbsp;(*init)(WINDOW &nbsp;*,int &nbsp;))<br>int &nbsp;napms(int &nbsp;ms)<br>---------------------------------<br>屏幕轉儲<p>int &nbsp;scr_dump(char &nbsp;*filename)<br>(注:此函數尚未實現。)<br>int &nbsp;scr_restore(char &nbsp;*filename)<br>(注:此函數尚未實現。)<br>int &nbsp;scr_init(char &nbsp;*filename)<br>(注:此函數尚未實現。)<br>int &nbsp;scr_set(char &nbsp;*filename)<br>(注:此函數尚未實現。)<br>-----------------------------------<br>Termcap模擬<p>int &nbsp;tgetent(char &nbsp;*bp,char &nbsp;*name)<br>int &nbsp;tgetflag(char &nbsp;fd[2])<br>int &nbsp;tgetnum(char &nbsp;fd[2])<br>char &nbsp;*tgetstr(char &nbsp;fd[2],char &nbsp;**area)<br>char &nbsp;tgoto(char &nbsp;*cap,int &nbsp;col,int &nbsp;row)<br>int &nbsp;tputs(char &nbsp;*str,int &nbsp;offset,int &nbsp;(*putc)())<br>-------------------------------------------<br>調試函數<p>void &nbsp;_init(trace()<br>void &nbsp;_trace(char &nbsp;*,...)<br>char &nbsp;*_traceattr(mode)<br>void &nbsp;traceon()<br>void &nbsp;traceoff()<br>&lt;/Content&gt;<br>&lt;PostDateTime&gt;2002-08-31 09:29:00&lt;/PostDateTime&gt;<br>&lt;/Reply&gt;&lt;Reply&gt;<br>&lt;PostUserNickName&gt;&lt;/PostUserNickName&gt;<br>&lt;rank&gt;四級(中級)&lt;/rank&gt;<br>&lt;ranknum&gt;user4&lt;/ranknum&gt;<br>&lt;credit&gt;97&lt;/credit&gt;<br>&lt;ReplyID&gt;6339224&lt;/ReplyID&gt;<br>&lt;TopicID&gt;984818&lt;/TopicID&gt;<br>&lt;PostUserId&gt;202193&lt;/PostUserId&gt;<br>&lt;PostUserName&gt;qisiwole&lt;/PostUserName&gt;<br>&lt;Point&gt;0&lt;/Point&gt;<br>&lt;Content&gt;-------------------------------------------<p>8.21.1布爾型權能<br>變量權能名稱初始化描述<br>auto_left_marginbwbwcub1從最后一列換行到第0列<br>auto_right_marginamam終端的邊界自動對齊<br>back_color_erasebceut屏幕以背景色清除<br>can_changeccccc終端可以重新定義現有的顏色<br>ceol_standout_glitch &nbsp; &nbsp;xhpxs標準輸出不會被覆蓋所清除(hp)<br>col_addr_glitchxhpaYA對hpa/mhpa大寫字符而言只作正向移動<br>cpi_changes_rescpixYF改變字符間距將會影響解析度<br>cr_cancels_micro_mode &nbsp; &nbsp;crxm &nbsp; &nbsp;YB使用cr關閉宏模式<br>eat_newline_glitchxenlxn在80列之后將忽略新行(Concept)<br>erase_overtrikeeoeo可以用空格來刪除疊印<br>generic_typegngn通用行類型(如dialup,switch)<br>hard_copyhchc硬拷貝終端<br>hard_cursorchtsHC光標很難看到<br>has_meta_keykmkm有一個元鍵(shift,設置奇偶校驗位)<br>has_print &nbsp;_wheeldaisyYC打印機需要操作員來改變字符集<br>has_status_linehshs有一個額外的“狀態行”<br>hue_lightness_saturation &nbsp;hlshl終端只使用HLS顏色表示法(Tektronix)<br>insert_null_glitchinin插入模式,能識別空行<br>lpi_changes_reslpixYG改變行距將影響解析度<br>memory_abovedada顯示可以保留在屏幕上方<br>memory_belowdbdb顯示可以保留在屏幕下方<br>move_insert_modemirmi在插入模式下可以安全地移動<br>move_standout_mode &nbsp; msgrms在標準輸出模式下可以安全地移動<br>needs_xon_xoffnxonnx不能填充,需要nxon/xoff<br>no_esc_ctl_cxsbxbBeehive信號(F1=Escape,F2=CtrlC)<br>non_rev_rmcupnrrmcNRsmcup不能反轉rmcup<br>no_pad_char &nbsp;npcNP填充字符不存在<br>non_dest_scroll_region &nbsp; ndscr &nbsp; &nbsp;ND滾動區不可摧毀<br>over_strikeosos終端可以疊印<br>prtr_silentmc5i5i打印機不向屏幕回送<br>row_addr_glitchxvpaYDvhp/mvpa大寫字母只能作正向移動<br>semi_auto_right_margin &nbsp;samYE打印在最后一列將導致cr<br>status_line_esc_okeslokes在狀態行上可以使用Esc鍵<br>dest_tabs_magic_smso &nbsp; &nbsp;xtxt制表符不可用(Teleray1061)<br>tilde_glitchhzhzHazel_tine;不能打印’s<br>transparent_underline &nbsp; &nbsp;ulul下劃線字符疊印<br>xon_coffxonxo終端使用xon/xoff握手機制<br>8.21.2數值型權能<br>變量權能名稱初始值描述<br>bit_image_entwining &nbsp; &nbsp; bitwinYo在SYSV中未作描寫<br>buffer_capacitybufszYa在打印前緩存的字節的數目<br>columnscolsco在一行中列的數目<br>dot_vert_spacingspinvYb在水平方向上點與點的距離,以每英寸多少點為單位<br>dot_horz_spacingspinhYc在垂直方向上針之間的距離,以每英寸多少針為單位<br>init_tabsitit每#個空格算一個制表符的位置<br>label_heightlhlh每個標簽多少行<br>label_widthlwlw每個標簽多少列<br>lineslinesli屏幕或頁面上行的數目<br>lines_of_memorylmlm如果&amp;gt&#59;lines則表示內存中的行數,0意味著可變<br>magic_cookie_glitch &nbsp; &nbsp;xmcsgsmso或rmso所剩下的空白字符的數目<br>max_colorscolorsCo在屏幕上顏色的最大數目<br>max_micro_address &nbsp; maddrYd在micro_._address中的最大值<br>max_micro_jumpmjumpYe在parm_._micro中的最大值<br>max_pairspairspa在屏幕上顏色對的最大數目<br>micro_col_sizemcsYf在宏模式中字符間距的大小<br>micro_line_sizemlsYg在宏模式中行距的大小<br>no_color_videoncvNC不能使用彩色的視頻屬性<br>number_of_pinsnpinsYh在打印頭中針的數目<br>num_labelsnlabNl屏幕上標簽的數量<br>output_res_char &nbsp;orcYi水平解析度,以每行單元數為單位<br>output_res_lineorlYj垂直解析度,以每行單元數為單位<br>output_res_horz_inch &nbsp; orhiYk水平解度,以每英寸單元數為單位<br>output_res_vert_inch &nbsp; &nbsp;orviYl垂直解析度,以每英寸單元數為單位<br>padding_baud_rate &nbsp; &nbsp; pbpb在需要cr/nl填充時最低的波特率<br>virtual_terminalvtvt虛擬終端號(Unix系統)<br>width_status_linewslws狀態行的第n列<p>(下面的數值型權能是在SYSVterm結構中定義的,但在man幫助中還沒有提供對它們的<br>描述。我們的解釋來自term結構的頭文件。)<br>變量權能名稱初始值描述<p>bit_image_typebitypeYp位映像設備的類型<br>buttonsbtnsBT鼠標按鍵的數目<br>max_attributesmama終端能夠處理的最多的組合屬性<br>maximum_windows &nbsp; &nbsp;wnumMW可定義窗口的最大數目<br>print &nbsp;_ratecpsYm打印速率,以每秒字符數為單位<br>wide_char &nbsp;_sizewidcsYn在雙寬度模式中字符間距的大小<p>8.21.3字符串型權能<br>變量權能名稱初始值描述<p>acs_char &nbsp;sacscac圖形字符集對一def=vt100<br>alt_scancode_escscesaS8掃描碼模擬的另一種換碼(默認值是VT100)<br>back_tab &nbsp;cbtbt向后tab(p)<br>bellbelbl聲音信號(響鈴)(p)<br>bit_image_repeatbirepXy把位映像單元重復#1#2次(使用tparm)<br>bit_image_newlinebinelZz移動到位映像的下一行(使用tparm)<br>bit_image_carriage_return &nbsp; bicr &nbsp;Yv移動到同一行的開頭(使用tparm)<br>carriage_returncrcr回車(p*)<br>change_char &nbsp;_pitch &nbsp; cpiZA改變為每英寸#個字符<br>change_line_pitchlpiZB改變為每英寸#行<br>change_res_horzchrZC改變水平解度<br>change_res_vertcvrZD改變垂直解析度<br>change_scroll_region &nbsp; &nbsp; csrcs把滾動區改變為從#1行到#2行(VT100)(PG)<br>char &nbsp;_paddingrmprP與ip相似,但它用在插入模式中<br>char &nbsp;_set_namescsnmZy字符集名稱的列表<br>clear_all_tabstbcct清除所有的制表符停止(p)<br>clear_marginsmgcMC清除所有的頁邊<br>clear_screenclearcl清除屏幕和home光標(p*)<br>clr_bolel1cb清除到行首<br>clr_eolelce清除到行尾(P)<br>clr_eosedcd清除到顯示的末尾(p*)<br>code_set_initcsinci多個代碼集合的初始化序列<br>color_namescolornmYw#1號顏色的名稱<br>column_addresshpach設置光標列(PG)<br>command_char &nbsp;acter &nbsp; cmdchCC在原型中終端可以設置的cmd字符<br>cursor_addresscupcm屏幕光標移動到#1行#2列(PG)<br>cursor_downcud1do下移一行<br>cursor_homehomehoHome光標(如果沒有環的話)<br>cursor_invisiblecivisvi使光標不可見<br>cursor_leftcub1le把光標向左移一個空格<br>cursor_mem_address &nbsp;mrcupCM內存相對的光標尋址<br>cursor_normalcnormve使光標以最普通的外形顯示(undovs/vi)<br>cursor_rightcuf1nd不具有破壞性的空白(光標向右移)<br>cursor_to_llllll最后一行,第一列(如果沒有環的話)<br>cursor_upcuu1upUpline(光標向上移)<p>cursor_visiblecvvisvs使光標可見<br>define_bit_image_region &nbsp;defbiYx定義方形的位映像區(使用tparm)<br>define_char &nbsp;defcZE定義字符集中的某個字符<br>delete_char &nbsp;acterdch1dc刪除字符(p*)<br>delete_linedl1dl刪除行(p*)<br>device_typedevtdv顯示語言/代碼集支持<br>dis_status_linedslds關閉狀態行<br>display_pc_char &nbsp;dispcS1顯示PC字符<br>down_half_linehdhd向下移動半行(向前換1/2行)<br>ena_acsenacseA使能另一個字符集合<br>end_bit_image_region &nbsp;endbi Yy結束位映像區(使用tparm)<br>enter_alt_char &nbsp;set_mode &nbsp;smacs &nbsp; &nbsp; as開始另一個字符集(p)<br>enter_am_modesmamSA打開自動對齊特征<br>enter_blink_modeblink &nbsp; &nbsp; &nbsp; mb打開字符閃爍效果<br>enter_bold_modeboldmd打開粗體(特別亮)模式<br>enter_ca_modesmcupti啟動使用環的程序的字符串<br>enter_delete_modesmdcdm刪除模式(輸入)<br>enter_dim_modedimmh打開半亮模式<br>enter_doublewide_mode &nbsp;swidm &nbsp; &nbsp;ZF使能雙倍寬度模式<br>enter_draft_qualitysdrfqZG設置草圖效果的打印方式<br>enter_insert_modesmirim插入模式(輸入)<br>enter_italics_modesitmZH使能斜體字模式<br>enter_leftward_mode &nbsp; &nbsp; &nbsp; slmZI使能向左回車移動<br>enter_micro_modesmicmZJ使能宏移動功能<br>enter_near_letter_quality &nbsp;snlqZK設置NLQ打印<br>enter_normal_quality &nbsp; &nbsp; snrmqZL設置一般質量的打印方式<br>enter_pc_char &nbsp;set_mode smpch &nbsp; &nbsp; S2輸入PC字符顯示模式<br>enter_protected_mode &nbsp; &nbsp; &nbsp;protmp打開保護模式<br>enter_reverse_mode &nbsp; &nbsp; &nbsp; &nbsp; revmr打開反轉視頻模式<br>enter_scancode_mode &nbsp; &nbsp;smscS4輸入PC掃描碼<br>enter_secure_mode &nbsp; &nbsp; &nbsp; &nbsp;invismk打開空白模式(字符不可見)<br>&lt;/Content&gt;<br>&lt;PostDateTime&gt;2002-08-31 09:29:00&lt;/PostDateTime&gt;<br>&lt;/Reply&gt;&lt;Reply&gt;<br>&lt;PostUserNickName&gt;&lt;/PostUserNickName&gt;<br>&lt;rank&gt;四級(中級)&lt;/rank&gt;<br>&lt;ranknum&gt;user4&lt;/ranknum&gt;<br>&lt;credit&gt;97&lt;/credit&gt;<br>&lt;ReplyID&gt;6339230&lt;/ReplyID&gt;<br>&lt;TopicID&gt;984818&lt;/TopicID&gt;<br>&lt;PostUserId&gt;202193&lt;/PostUserId&gt;<br>&lt;PostUserName&gt;qisiwole&lt;/PostUserName&gt;<br>&lt;Point&gt;0&lt;/Point&gt;<br>&lt;Content&gt;enter_shadow_mode &nbsp; &nbsp; &nbsp; sshmZM使能陰影打印模式<br>enter_standout_mode &nbsp; &nbsp; &nbsp;smso &nbsp;so開始標準輸出模式<br>enter_subscript_mode &nbsp; &nbsp; ssubm &nbsp; &nbsp; &nbsp;ZN使能下標打印<br>enter_superscript_mode &nbsp; &nbsp;ssupm &nbsp; ZO使能上標打印<br>enter_underline_mode &nbsp; &nbsp; &nbsp; &nbsp;smul &nbsp; &nbsp; &nbsp; us開始下劃線模式<br>enter_upward_mode &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sum &nbsp; &nbsp; &nbsp; ZP使能向上回車移動<br>enter_xon_modesmxonSX打開xon/xoff握手機制<br>erase_char &nbsp;sechec刪除#1個字符(PG)<br>exit_alt_char &nbsp;set_mode &nbsp; &nbsp; &nbsp; rmacs &nbsp; &nbsp;ae終止可選的字符集(P)<br>exit_am_modermamRA關閉自動對齊方式<br>exit_attribute_mode &nbsp; &nbsp;sgr0me關閉所有屬性<br>exit_ca_modermcupte終止使用環的程序的字符串<br>exit_delete_modermdced終止刪除模式<br>exit_doublewide_mode &nbsp; rwidm &nbsp; &nbsp; ZQ關閉雙倍寬度打印方式<br>exit_insert_modermirei結束插入模式<br>exit_italics_moderitmZR關閉斜體打印模式<p>exit_leftward_moderlmZS使能右向(普通的)回車移動<br>exit_micro_modermicmZT關閉宏移動能力<br>exit_pc_char &nbsp;set_mode &nbsp; rmpch &nbsp; &nbsp; &nbsp;S3關閉PC字符顯示<br>exit_scancode_mode &nbsp; &nbsp; &nbsp; &nbsp;rmsc &nbsp; &nbsp; &nbsp;S5關閉PC掃描碼模式<br>exit_shadow_mode &nbsp; &nbsp;rshmZU關閉陰影打印模式<br>exit_standout_mode &nbsp; &nbsp;rmsose結束標準輸出模式<br>exit_subscript_mode &nbsp; &nbsp;rsubmZV關掉下標打印方式<br>exit_superscript_mode &nbsp; rsupm &nbsp; &nbsp; ZW關掉上標打印方式<br>exit_underline_mode &nbsp; &nbsp; rmulue結束下劃線模式<br>exit_upward_moderumZX打開向下(普通的)回車移動<br>exit_xon_modermxonRX關掉xon/xoff握手機制<br>flash_screenflashvb可視響鈴(不能移動光標)<br>form_feedffff硬拷貝終端頁面的換頁(p*)<br>from_status_linefslfs從狀態行返回<br>init_1stringis1i1終端初始化字符串<br>init_2stringis2i2終端初始化字符串<br>init_3stringis3i3終端初始化字符串<br>init_fileifif所包含的文件名稱<br>init_progiprogiP初始化程序的路徑名<br>initialize_colorinitcIc初始化顏色的定義<br>initialize_pairinitpIp初始化顏色對<br>insert_char &nbsp;acterich1ic插入字符(P)<br>insert_lineil1al加入一個新的空白行(p*)<br>insert_paddingipip在插入的字符之后再插入填充字符(p*)<br>key_a1ka1K1小鍵盤左上方的鍵<br>key_a3ka3K3小鍵盤右上方的鍵<br>key_b2kb2K2小鍵盤中央的鍵<br>key_backspacekbskb由回退鍵所發送<br>key_begkbeg1開始鍵<br>key_btabkcbtkB向右一tab鍵<br>key_c1kc1K4小鍵盤左下角的鍵<br>key_c3kc3K5小鍵盤右下角的鍵<br>key_cancelkcan2取消鍵<br>key_catabktbcka由clear_all_tabs鍵發送<br>key_clearkclrkC由清除屏幕或者刪除鍵發送<br>key_closekclo3關閉鍵<br>key_commandkcmd4命令鍵<br>key_copykcpy5拷貝鍵<br>key_createkcrt6創建鍵<br>key_ctabkctabkt由clear_tab鍵發送<br>key_dckdch1kD由刪除字符鍵發送<br>key_dlkdl1kL由刪除行鍵發送<br>key_downkcud1kd由終端向下光標鍵發送<br>key_eickrmirkM在插入模式中由rmir或smir發送<br>key_endkend7結束鍵<br>key_enterkent8輸入/發送鍵<br>key_eolkelkE由clear_to_end_of_line鍵發送<p>key_eoskedkS由clear_to_end_of_screen鍵發送<br>key_exitkext9退出鍵<br>key_findkfnd0查找鍵<br>key_helpkhlp%1幫助鍵<br>key_homekhomekh由home鍵發送<br>key_ickich1kl由inschar &nbsp;/enterinsmode鍵發送<br>key_ilkil1kA由插入行發送<br>key_leftkcub1kl由終端向左鍵發送<br>key_llkllkH由home_down鍵發送<br>key_markkmrk%2標記鍵<br>key_messagekmsg%3消息鍵<br>key_movekmov%4移動鍵<br>key_nextknxt%5下一個鍵<br>key_npageknpkN由下頁鍵發送<br>key_openkopn%6打開鍵<br>key_optionskopt%7選項鍵<br>key_ppagekppkP由前頁鍵發送<br>key_previouskprv%8前一鍵<br>key_print &nbsp;kprt%9打印鍵<br>key_redokrdo%0redo鍵<br>key_refrencekref&amp;amp&#59;1引用鍵<br>key_refreshkrfr&amp;amp&#59;2刷新鍵<br>key_replacekrpl&amp;amp&#59;3替換鍵<br>key_restartkrst&amp;amp&#59;4重啟鍵<br>key_resumekres&amp;amp&#59;5恢復鍵<br>key_rightkcuf1kr由終端向右鍵發送<br>key_saveksav&amp;amp&#59;6保存鍵<br>key_sbegkBEG&amp;amp&#59;9按下開始鍵的同時按下shift鍵<br>key_scancelkCAN&amp;amp&#59;0按下取消鍵的同時按下shift鍵<br>key_scommandkCMD*1按下命令鍵的同時按下shift鍵<br>key_scopykCPY*2按下拷貝鍵的同時按下shift鍵<br>key_screatekCRT*3按下創建鍵的同時按下shift鍵<br>key_sdckDC*4按下刪除字符鍵的同時按下shift鍵<br>key_sdlkDL*5按下刪除行鍵的同時按下shift鍵<br>key_selectkslt*6選擇鍵<br>key_sendkEND*7按下結束鍵的同時按下shift鍵<br>key_seolkEOL*8按下行尾鍵的同時按下shift鍵<br>key_sexitkEXT*9按下退出鍵的同時按下shift鍵<br>key_sfkindkF由前滾/下滾鍵發送<br>key_sfindkFND*0按下查找鍵的同時按下shift鍵<br>key_shelpkHLP#1按下幫助鍵的同時按下shift鍵<br>key_shomekHOM#2按下Home鍵的同時按下shift鍵<br>key_sickIC#3按下插入字符鍵的同時按下shift鍵<br>key_sleftkLFT#4按下向左鍵的同時按下shift鍵<br>key_smessagekMSG%a按下消息鍵的同時按下shift鍵<br>key_smovekMOV%b按下移動鍵的同時按下shift鍵<br>key_snextkNXT%c按下向后鍵的同時按下shift鍵<p>key_soptionskOPT%d按下選項鍵的同時按下shift鍵<br>key_spreviouskPRV%e按下向前鍵的同時按下shift鍵<br>key_sprint &nbsp;kPRT%f按下打印鍵的同時按下shift鍵<br>key_srkrikR由后滾/下滾鍵發送<br>key_sredokRDO%g按下redo鍵的同時按下shift鍵<br>key_sreplacekRPL%h按下替換鍵的同時按下shift鍵<br>key_srightkRIT%l按下向右鍵的同時按下shift鍵<br>key_srsumekRES%j按下恢復鍵的同時按下shift鍵<br>key_ssavekSAV!1按下保存鍵的同時按下shift鍵<br>key_ssuspendkSPD!2按下中斷鍵的同時按下shift鍵<br>key_sundokUND!3按下取消鍵的同時按下shift鍵<br>key_stabkhtskT由set_tab鍵發送<br>key_suspendkspd&amp;amp&#59;7中斷鍵<br>key_undokund&amp;amp&#59;8取消鍵<br>key_upkcuulku由終端的向上鍵發送<br>keypad_localrmkxke不處于“小鍵盤發送”方式之中<br>keypad_xmitsmkxks把終端置為“小鍵盤發送”方式<br>lab_f0lf0l0如果不是f0的話,則為功能鍵f0的標簽<br>&lt;/Content&gt;<br>&lt;PostDateTime&gt;2002-08-31 09:30:00&lt;/PostDateTime&gt;<br>&lt;/Reply&gt;&lt;Reply&gt;<br>&lt;PostUserNickName&gt;&lt;/PostUserNickName&gt;<br>&lt;rank&gt;一級(初級)&lt;/rank&gt;<br>&lt;ranknum&gt;user1&lt;/ranknum&gt;<br>&lt;credit&gt;100&lt;/credit&gt;<br>&lt;ReplyID&gt;6339448&lt;/ReplyID&gt;<br>&lt;TopicID&gt;984818&lt;/TopicID&gt;<br>&lt;PostUserId&gt;200455&lt;/PostUserId&gt;<br>&lt;PostUserName&gt;linuxman2002&lt;/PostUserName&gt;<br>&lt;Point&gt;0&lt;/Point&gt;<br>&lt;Content&gt;up<br>&lt;/Content&gt;<br>&lt;PostDateTime&gt;2002-08-31 09:46:00&lt;/PostDateTime&gt;<br>&lt;/Reply&gt;&lt;Reply&gt;<br>&lt;PostUserNickName&gt;&lt;/PostUserNickName&gt;<br>&lt;rank&gt;四級(中級)&lt;/rank&gt;<br>&lt;ranknum&gt;user4&lt;/ranknum&gt;<br>&lt;credit&gt;97&lt;/credit&gt;<br>&lt;ReplyID&gt;6339495&lt;/ReplyID&gt;<br>&lt;TopicID&gt;984818&lt;/TopicID&gt;<br>&lt;PostUserId&gt;202193&lt;/PostUserId&gt;<br>&lt;PostUserName&gt;qisiwole&lt;/PostUserName&gt;<br>&lt;Point&gt;0&lt;/Point&gt;<br>&lt;Content&gt;lab_f1lf1l1如果不是f1的話,則為功能鍵f1<p>的標簽<br>lab_f2lf2l2如果不是f2的話,則為功能鍵f2<p>的標簽<br>lab_f3lf3l3如果不是f3的話,則為功能鍵f3<p>的標簽<br>lab_f4lf4l4如果不是f4的話,則為功能鍵f4<p>的標簽<br>lab_f5lf5l5如果不是f5的話,則為功能鍵f5<p>的標簽<br>lab_f6lf6l6如果不是f5的話,則為功能鍵f6<p>的標簽<br>lab_f7lf7l7如果不是f7的話,則為功能鍵f7<p>的標簽<br>lab_f8lf8l8如果不是f8的話,則為功能鍵f8<p>的標簽<br>lab_f9lf9l9如果不是f9的話,則為功能鍵f9<p>的標簽<br>lab_f10lf10la如果不是f10的話,則為功能鍵<p>f10的標簽<br>label_onsmlnLO打開軟標簽<br>label_offrmlnLF關閉軟標簽<br>meta_offrmmmo關閉“元模式”<br>meta_onsmmmm打開“元模式”(8位)<br>micro_column_address &nbsp; &nbsp;mhpa &nbsp; &nbsp;ZY近似宏調整的列—地址,<br>micro_downmcud1ZZ近似宏調整的光標—向下<br>micro_leftmcutb1Za近似宏調整的光標—向左<br>micro_rightmcuf1Zb近似宏調整的光標—向右<br>micro_row_address &nbsp; &nbsp; mvpaZc近似宏調整的行—地址<br>micro_upmcuu1Zd近似宏調整的光標—向上<br>newlinenelnw新行(行為近似于cr后跟lf)<br>order_of_pinsporderZe匹配軟件以及打印頭中的針<br>orig_colorsococ重置所有的顏色對<br>orig_pairopop把默認的顏色對設置為原始的那<p>個<br>pad_char &nbsp;padpc填充字符(非空)<br>parm_dchdchDC刪除#1字符(PG*)<br>parm_delete_linedlDL刪除#1行(PG*)<br>parm_down_cursor &nbsp; cudDO把光標向下移#1行(PG*)<br>parm_down_micro &nbsp; mcudZf近似宏調用的cub<p>parm_ichichIC插入#1個空白符號(PG*)<br>parm_indexindnSF向上滾動#1行(PG)<br>parm_insert_lineilAL加入#1個新的空白行(PG*)<br>parm_left_cursorcubLE把光標向左移#1個空格(PG)<br>parm_left_micromcubZg近似宏調整中的cub<br>parm_right_cursor &nbsp; &nbsp; cufRl把光標向右移#1個空格(PG*)<br>parm_right_micromcufZh近似宏調整中的cuf<br>parm_rindexrinSR回滾#1行(PG)<br>parm_up_cursorcuuUP把光標上移#1行(PG*)<br>parm_up_micromcuuZi近似宏調整中的cuu<br>pkey_keypfkeypk把功能鍵#1定義為字符#2的類型<br>pkey_localpflocpl把功能鍵#1定義為執行字符串#2<br>pkey_xmitpfxpx把功能鍵#1定義為發送字符串#2<br>pkey_plabpfxlxl把功能鍵#1定義為發送#2,并顯<p>示#3<br>plab_normplnpn編程標簽#1,以顯示字符串#2<br>print &nbsp;_screenmc0ps打印屏幕內容<br>prtr_nonmc5ppO打開打印機,打印#1個字節<br>prtr_offmc4pf關閉打印機<br>prtr_onmc5po打開打印機<br>repeat_char &nbsp;reprp把字符#1重復#2次(PG*)<br>req_for_inputrfiRF輸入請求<br>reset_1stringrs1r1把終端完全置為sane方式<br>reset_2stringrs2r2把終端完全置為sane方式<br>reset_3stringrs3r3把終端完全置為sane方式<br>reset_filerfrf包含重置字符串的文件名稱<br>restore_cursorrcrc把光標置為上一個屏幕上的位置<br>row_addressvpacv垂直絕對位置(設置行)(PG)<br>save_cursorscsc保存光標位置(P)<br>scancode_escapescescS7為了掃描碼模擬按下Esc鍵<br>scroll_forwardindsf把文本向上滾動(P)<br>scroll_reverserisr把文本向下滾動(P)<br>select_char &nbsp;_setscsZj選擇字符集<br>set0_des_seqs0dss0切換到代碼集0(EUC集0,ASCII)<br>set1_des_seqs1dss1切換到代碼集1<br>set2_des_seqs2dss2切換到代碼集2<br>set3_des_seqs3dss3切換到代碼集3<br>set_a_backgroundsetabAB使用ANSI設置背景顏色<br>set_a_foregroundsetafAF使用ANSI設置前景顏色<br>set_attributessgrsa定義視頻屬性(PG9)<br>set_backgroundsetbSb設置當前背景顏色<br>set_bottom_marginsmgbZk設置當前行的底部邊界<br>set_bottom_margin_parm &nbsp; &nbsp;smgbp &nbsp;ZI從bottomset_color_band的#1行<p>或#2行設置底行<br>setcolorYz改變#1號色帶顏色<br>set_color_pairscpsp設置當前顏色對<br>set_foregroundsetfSf設置當前前景色<br>set_left_marginsmglML設置當前行的左邊界<br>set_left_margin_parm &nbsp; smglpZm在#1行(#2行)設置左(右)邊界<p>set_lr_marginsmglrML設置左右邊界<br>set_page_lengthslinesYZ把頁的長度設置為#1行(使用<p>tparm)<br>set_right_marginsmgrMR把右邊界設置為當前列<br>set_right_margin_parm &nbsp; &nbsp; &nbsp; smgrp &nbsp; &nbsp; Zn把右邊界設置為#1列<br>set_tabhtsst在當前列的所有行設置制表符<br>set_tb_marginsmgtbMT設置上下邊界<br>set_top_marginsmgtZo把上邊界設置為當前行<br>set_top_margin_parm &nbsp; &nbsp; &nbsp; &nbsp;smgtp &nbsp; &nbsp; Zp把上邊界設置為#1行<br>set_WINDOW &nbsp;windwi當前窗口是從#1行到#2行,從#3<p>列到#4列<br>start_bit_imagesbimZq開始打印位映像圖形<br>start_char &nbsp;_set_def &nbsp; scsdZr開始定義字符集<br>stop_bit_imagerbimZs結束打印位映像圖形<br>stop_char &nbsp;_set_def &nbsp; &nbsp; &nbsp;rcsdZt結束定義字符集<br>subscript_char &nbsp;acters &nbsp; &nbsp; &nbsp; &nbsp;subcs &nbsp; &nbsp; &nbsp;Zu下標字符的列表<br>superscript_char &nbsp;acters &nbsp; &nbsp;supcs &nbsp; &nbsp; &nbsp;Zv 上標字符的列表<br>tabhtta跳轉到下面8個空格硬件的制表<p>符位置<br>these_cause_crdocrZw這些字符導致CR<br>to_status_linetslts跳到狀態行,第1列<br>underline_char &nbsp;ucuc給某字符劃下劃線,并移過它<br>up_half_linehuhu上移半行(反轉1/2行)<br>xoff_char &nbsp;actercoffcXFXON字符<br>xon_char &nbsp;acterxoncXNXOFF字符<p>(下面的字符串權能是在SYSVr終端結構中定義的,但在man幫助信息中還<p>未作描述,對<br>它們的解釋是從終端結構頭文件中得到的。)<p>label_formatflnLf??<br>set_clocksclkSC設置時鐘<br>display_clockdclkDK顯示時鐘<br>remove_clockrmclkRC刪除時鐘<br>create_WINDOW &nbsp;cwinCW把窗口#1定義為從#2行,#3列到#4<p>行,#5列<br>goto_WINDOW &nbsp;wingoWG跳到窗口#1<br>hanguphupHU掛起電話<br>dial_phonedialDI撥電話號碼#1<br>quick_dialqdialQD撥電話號碼#1,但不做進度檢查<br>tonetoneTO選擇接觸聲調撥叫<br>pulsepulsePU選擇脈沖撥叫<br>flash_hookhookfh閃光切換分支<br>fixed_pausepausePA暫停2~3秒<br>wait_tonewaitWA等待撥叫聲音<br>user0u0u0用戶字符串#0<br>user1u1u1用戶字符串#1<br>user2u2u2用戶字符串#2<br>user3u3u3用戶字符串#3<br>user4u4u4用戶字符串#4<br>user5u5u5用戶字符串#5<br>user6u6u6用戶字符串#6<br>user7u7u7用戶字符串#7<br>user8u8u8用戶字符串#8<br>user9u9u9用戶字符串#9<br>get_mousegetmGmsurses &nbsp; 應獲得按鈕事件<br>key_mousekmousKm??<br>mouse_infominfoMi鼠標狀態信息<br>pc_term_optionspctrmS6PC終端選項<br>req_mouse_posreqmpRQ請求鼠標位置報告<br>zero_motionzeromZx后繼字符沒有移動<br>---------------------------------------------------------------------<br>大半年前看ncurses庫的筆記<br>共享一下吧。

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产综合久久久久久久久久久久| 国产精品美女久久久久高潮| 国产欧美一区二区精品忘忧草| 亚洲精品国产无套在线观| 亚洲成人av一区| 国产成人免费在线视频| 91精品国产91久久久久久一区二区 | 精品区一区二区| 亚洲精品国产成人久久av盗摄| 三级在线观看一区二区| 91免费国产在线| 精品sm在线观看| 亚洲成a人v欧美综合天堂下载| 国产美女一区二区| 日韩精品一区二区三区四区视频| 亚洲欧美日韩在线| 国产精品一区二区在线观看不卡| 色噜噜狠狠色综合欧洲selulu| 欧美激情一区二区三区不卡| 日本不卡的三区四区五区| 97久久超碰国产精品| 日韩午夜在线播放| 一区二区高清在线| fc2成人免费人成在线观看播放| 精品久久人人做人人爱| 亚洲国产精品麻豆| 99久久99久久久精品齐齐| 欧美精品一区男女天堂| 青青草国产精品亚洲专区无| 欧美在线看片a免费观看| 久久精品视频在线免费观看| 天堂va蜜桃一区二区三区漫画版| 日本大香伊一区二区三区| 26uuu亚洲| 日韩经典一区二区| 91精品国产一区二区三区香蕉| 一区二区在线观看视频在线观看| 东方aⅴ免费观看久久av| 欧美大白屁股肥臀xxxxxx| 天天操天天综合网| 欧美性生交片4| 欧美电影免费观看高清完整版在| 日韩二区三区在线观看| 欧美在线影院一区二区| 日韩理论片中文av| 成人黄色大片在线观看| 久久精品视频免费| 国产在线一区二区| 精品国产乱码久久久久久闺蜜| 亚洲成人精品影院| 色婷婷精品久久二区二区蜜臀av| 国产精品久久午夜| 成人美女在线观看| 中文字幕精品在线不卡| 日本亚洲一区二区| 欧美一区二区视频网站| 日韩精品一区第一页| 欧美久久久久久久久| 亚洲成国产人片在线观看| 91传媒视频在线播放| 亚洲一区在线播放| 欧美日韩在线观看一区二区 | 欧美日韩亚洲综合| 亚洲成人动漫在线观看| 欧美剧情片在线观看| 亚洲欧美另类图片小说| 在线视频一区二区免费| 亚洲国产日韩a在线播放| 欧美色区777第一页| 五月激情六月综合| 制服丝袜av成人在线看| 久久99精品久久只有精品| 亚洲精品在线观看网站| 国产成人精品三级麻豆| 17c精品麻豆一区二区免费| 色欲综合视频天天天| 综合中文字幕亚洲| 在线影视一区二区三区| 亚洲18色成人| 日韩三级高清在线| 国产在线视频不卡二| 国产视频在线观看一区二区三区 | 国产精品国产三级国产普通话三级| aaa欧美日韩| 中文字幕一区二区三区精华液| 色屁屁一区二区| 日本午夜精品一区二区三区电影| 欧美mv日韩mv国产| 高潮精品一区videoshd| 日韩美女视频19| 欧美精品在线一区二区三区| 久久99精品国产.久久久久| 亚洲国产精品传媒在线观看| gogogo免费视频观看亚洲一| 亚洲最色的网站| 欧美一区二区久久久| 国产不卡免费视频| 亚洲一区二区三区激情| 亚洲精品在线网站| 91麻豆精品视频| 美女视频网站黄色亚洲| 亚洲国产成人自拍| 欧洲一区二区三区在线| 激情欧美一区二区三区在线观看| 国产精品区一区二区三区| 欧美性猛交xxxxxx富婆| 国产在线精品视频| 亚洲二区在线视频| 国产精品福利av| 精品国产乱码久久久久久1区2区| 欧美偷拍一区二区| 成人视屏免费看| 另类成人小视频在线| 亚洲精品乱码久久久久| 亚洲国产精品成人综合| 日韩精品在线网站| 欧美区在线观看| 97精品久久久久中文字幕| 国产精品白丝jk白祙喷水网站| 日韩1区2区3区| 伊人色综合久久天天| 中文字幕第一区综合| 欧美成人高清电影在线| 欧美福利视频导航| 欧亚洲嫩模精品一区三区| 菠萝蜜视频在线观看一区| 国产一区二区中文字幕| 日韩国产成人精品| 亚洲国产日韩精品| 亚洲激情av在线| 亚洲欧洲成人自拍| 亚洲国产精品ⅴa在线观看| 精品精品欲导航| 欧美一区二区福利视频| 欧美日韩在线综合| 色欧美乱欧美15图片| 99久久精品国产一区二区三区| 国产乱人伦偷精品视频免下载| 久久国产视频网| 丝袜a∨在线一区二区三区不卡| 亚洲自拍另类综合| 有码一区二区三区| 亚洲视频免费看| 综合久久一区二区三区| 亚洲国产成人自拍| 国产精品素人一区二区| 国产欧美日韩三级| 日本一区二区三区四区| 国产三区在线成人av| 日日摸夜夜添夜夜添国产精品| 亚洲日本免费电影| 亚洲欧洲美洲综合色网| 国产精品国产自产拍高清av王其| 中文字幕乱码亚洲精品一区| 国产亚洲精品久| 欧美激情一区二区三区四区 | 日本韩国欧美一区二区三区| 色诱亚洲精品久久久久久| 色哟哟国产精品免费观看| 91国偷自产一区二区三区成为亚洲经典| 91女神在线视频| 欧洲亚洲精品在线| 欧美性大战久久久久久久| 欧美日韩国产高清一区二区三区| 欧美日韩国产综合久久| 欧美片在线播放| 日韩三级.com| 久久久久久黄色| 国产精品女主播av| 亚洲欧美另类久久久精品2019 | 欧美va亚洲va在线观看蝴蝶网| 欧美va亚洲va| 中文字幕不卡在线观看| 国产精品久久看| 亚洲综合色视频| 日韩精品色哟哟| 韩国女主播成人在线观看| 国产福利视频一区二区三区| 成人av在线资源网站| 欧美这里有精品| 日韩午夜激情av| 国产欧美精品一区二区色综合朱莉 | 欧美视频一区二区| 欧美一区二区视频在线观看2022| 精品久久久久久久久久久院品网| 国产欧美中文在线| 亚洲精品伦理在线| 美国毛片一区二区三区| 国产成人超碰人人澡人人澡| 91亚洲精品一区二区乱码| 欧美日韩精品是欧美日韩精品| 日韩精品一区二区在线| 国产精品免费久久久久| 午夜久久久久久久久| 国产一区二区女| 在线精品亚洲一区二区不卡| 日韩精品中文字幕一区二区三区| 中文字幕的久久| 日韩经典一区二区| 成人av高清在线|