亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

scounix下curses編程函數說明

瀏覽:87日期:2024-07-01 14:26:32

INDDW*curscr:當前屏幕 WINDOW *stdscr:標準屏幕 int LINES:終端上的行數 int COLS:終端上的列數 bool TRUE:真標志,1 bool FALSE:假標志,0 int ERR:錯誤標志,-1 int OK:OK標志,0 --------------------------------------------- win:WINDOW * bf:bool ch:chty pe str:char * chstr:chty pe* fmt:char * 否則:int --------------------------------------------- 初始化

WINDOW *initscr() SCREEN*newterm(char *type, FILE *outfd, FILE *infd) 對用戶訪問的每個終端都應該調用newterm t y p e是終端的名稱,包括在$ T E R M中(如ansi, xterm, vt100等等) SCREEN*set_term(SCREEN *new) 用戶可以切換當前終端。所有的函數都將在設置的當前終端上起作用。 int endwin() 退出程序之前,關閉所有打開的窗口。 之后還可以調用refresh(), int isendwin() ifendwin()->refresh(),TRUE,|FALSE。 ----------------------- WINDOW *newwin(nlines,ncols,begy,begx) begy和begx是窗口左上角的坐標。nlines是一個整數, 存放著行的數目,而ncols,存放著列的數目。 所有的參數設置為零,則打開的窗口的大小將與屏幕的大小相同。 int delwin(win) 它刪除窗口win。如果存在子窗口,以前先要刪除這些子窗口。這個函數將 釋放win所占據的所有資源。在調用endwin()之前用戶應該刪除所有的窗口 int mvwin(win,by,bx) 它將把窗口移到坐標(by,bx)處。如果把窗口移出屏幕邊界的范圍,則ERR WINDOW *subwin(origwin,nlines,ncols,begy,begx) 它返回一個位于origwin窗口中間的子窗口。如果用戶改變這兩個窗口 (origwin或者那個新窗口)中的一個,則這種改變將會同時反映到這兩 個窗口上。在下一次調用refresh()之前,先要調用touchwin(origwin) begx和begy是相對于屏幕的,而不是相對于origwin的。 WINDOW *derwin(origwin,nlines,ncols,begy,begx) 此函數與subwin(.)相同,只不過這里的begx和begy是相對于origwin的,而不是相對于屏幕的。 mvderwin(win,y,x) 此函數將把win移到父窗口內。(注意:此函數尚未實現)。 WINDOW *dupwin(win) 此函數復制窗口win。 int overlay(win1,win2) 將把win1中的所有文本拷貝到win2中,但是不拷貝空格。 int overwrite(win1,win2) 也是做文本拷貝工作的函數,但它拷貝空格。 int copywin(win1,win2,sminrow,smincol,dminrow, dmincol,dmaxrow,dmaxcol,overlay) 它所做的工作與overlay(.)和overwrite(.)相似,但是該函數還可以讓程序員選擇拷貝窗口的哪個區(qū)域。 int addch(ch) int waddch(win,ch) int mvaddch(y,x,ch) int mvwaddch(win,y,x,ch) ---------------- int addstr(str) int addnstr(str,n) int waddstr(win,str) int waddnstr(win,str,n) int mvaddstr(y,x,str) int mvaddnstr(y,x,str,n) int mvwaddstr(win,y,x,str) int mvwaddnstr(win,y,x,str,n) ----------------------------- int addchstr(chstr) int addchnsrtr(chstr,n) int waddchstr(win,chstr) int waddchnstr(win,chstr,n) int mvaddchstr(y,x,chstr) int mvaddchnstr(y,x,chstr,n) int mvwaddchstr(win,y,x,chstr) int mvwaddchnstr(win,y,x,chstr,n) *****chstr是指向ch type數組的一個指針。***** --------------------------- int echochar (ch) int wechochar (win,ch) --------------------------- int printw(fmt,..) int wprintw(win.fmt,....) int mvprintw(y,x,fmt,...) int mvwprntw(win,y,x,fmt,..) --------------------------- int insch(c) int winsch(win,c) int mvinsch(y,x,c) int mvwinsch9win,y,x,c) 這些函數把字符ch插入到光標的左邊, 光標后面的所有字符則向右移動一個位置。 在這一行最右端的字符可能會丟失。 --------------------------- int insert() int winsert(win) 在當前行的上方插入一個空行(最底下的一行將被丟失)。 --------------------------- int insdelin(n) int winsdelln(win,n) 如果n為正數,則這些函數將在適當的窗口的當前光標上方插入n行 (這樣一來最底下的n行將丟失);如果n為負數,則光標下面的n行將被刪除, 余下的行將上升,頂替它們的位置。這些函數將在當前光標的左邊插入str (字符的個數不能超過一行的限度)。在光標右邊的字符將右移,如果到達行 尾,則字符將丟失,光標位置不變。y和x是指在插入str以前先要把光標移動 到的坐標,n是要插入的字符的數目(如果n為0則插入整個字符串)。 --------------------------- int insstr(str) int insnstr(str,n) int winsstr(win,str) int winsnstr(win,str,n) int mvinsstr9y,x,str) int mvinsnstr(y,x,str,n) int mvwinsstr(win,y,x,str) int mvwinsnstr(win,y,x,str,n) 這些函數將在當前光標的左邊插入str(字符的個數不能超過一行的限度)。 在光標右邊的字符將右移,如果到達行尾,則字符將丟失,光標位置不變。 y和x是指在插入str以前先要把光標移動到的坐標,n是要插入的字符的數目 (如果n為0則插入整個字符串)。 --------------------------- int delch() int wdelch(win) int mvdelch(y,x) int mvwdelch(win,y,x) 刪除光標左邊的字符,并把光標右邊余下的字符向左移動一個位置。 y和x是在進行刪除操作以前要把光標移動到的坐標。 int deleteln() int wdeleteln(win) 刪除光標下面的一行,并把下面所有的其他行都向上移動一個位置。 此外,屏幕最底下的一行將被清除。 ----------------------------- 方框和直線

int border(ls,rs,ts,bs,tl,tr,bl,br) int wborder(win,ls,rs,ts,bs,tl,tr,bl,br) int box(win,vert,hor) 這些函數在窗口的邊界(或者win的邊界)畫上方框。在下面的表格中, 讀者將可以看到字符,以及它們的默認值。當用零去調用box(.)時將 會用到這些默認值。在下面的圖中讀者可以看到方框中字符的位置 ------------- int vline9ch,n) int wvline(win,ch,n) int hline(ch,n) int whline(win,ch,n) 這些函數將從當前光標位置開始畫一條水平線或者垂直線。 ch是畫線所使用的字符,n是要畫的字符的個數,光標位置并不移動。 -------------------------- void bkgdset(ch) void wbkgdset(win,ch) 這兩個函數設置窗口或者屏幕的背景字符和屬性。ch的屬性將和窗口中 所有非空格的字符的屬性進行OR操作。背景是窗口的一部分, 將不會隨著滾動、輸入或輸出而改變 int bkgd(ch) int wbkgd(win,ch) --------------------------------- int getch() int wgetch() int mvgetch(y,x) int mvwgetch(win,y,x) getch()將從終端讀取輸入,讀取的方式取決于是否設置了延遲模式。 如果設置了延遲模式,則getch()將一直等待,直到用戶按下一個鍵為止; 如果沒有設置延遲模式,則它將返回輸入緩沖區(qū)中的數據,如果輸入緩沖區(qū) 為空,則它將返回ERR。mvgetch(.)和mvwgetch(.)首先把光標移動到位置 (y,x)上。名稱中有w字母的函數將從與窗口win相關的終端讀取輸入, getch()和mvgetch(.)則從屏幕相關的終端讀取。如果使能了keypad(.) 在用戶按下某個功能鍵時,getch()將返回一個代碼,該代碼在.h頭文件中被 定義為KEY_*宏。如果用戶按下Esc鍵(它可能會是某個組合功能鍵的第 一個鍵),則ncurses將啟動一個否則就返回功能鍵的值。(如果需要的話, 可以使用notimeout()來關閉第二個定時器 int ungetch() 這個函數將把字符ch送回輸入緩沖區(qū)。 --------------------- int getstr(str) int wgetstr(win,str) int mvgetstr(y,x,str) int mvwgetstr(win,y,x,str) int wgetnstr(win,str,n) 這些函數的作用相當于對getch()進行一系列的調用,直到接收到一個新行。 行中的字符存放在str中(所以,在調用getstr(.)之前,不要忘記給字符指針 分配內存)。如果打開了回送,則字符串將被顯示出來(使用noecho()可以關 閉回送)而用戶的刪除字符以及其他特殊字符也會被解釋出來 ----------------- chty peinch(0 chty pewinch(win) chty pemvinch(y,x) chty pemvwinch(win,y,x) 這些函數從屏幕或窗口返回一個字符,因為返回值的類型是chty pe, 所以還包括了屬性信息。這一信息可以使用常量A_*從字符中擴展得到。 ------------------- int scanw(fmt,...) int wscanw(win,fmt,...) int mvscanw(y,x,fmt,...) int mvwscanw(win,y,x,fmt,...) int vwscanw(win,fmt,va_list.) ---------------------------- 輸出選項 int idlok9win,bf) void fdcok(win.bf) 這兩個函數為窗口使能或者關閉終端的insert/delete特征(idlok(.)針對一 行,而idcok(.)則針對字符)。(注:idcok(.)尚未實現) void immedok(win,bf) bf設置為TRUE,則對窗口win的每一次改變都將導致物理屏幕的一次刷新。 這將使程序的性能降低,所以默認的值是FALSE。(注:此函數尚未實現) int clearok(win,bf) 如果bf值為TRUE,則下一次調用wrefresh(win)時將會清除屏幕, 并完全地把它重新畫一遍(就像用戶在編輯器vi中按下Ctrl+L一樣)。 int leaveok(win,bf) 默認的行為是,ncurses讓物理光標停留在上次刷新窗口時的同一個位置上。 不使用光標的程序可以把leaveok(.)設置為TRUE,這樣一般可以節(jié)省光標 移動所需要的時間。此外,ncurses將試圖使終端光標不可見。 int nl() int nonl() 這兩個函數控制新行的平移。使用nl()可以打開平移,這樣在回車時就會 平移到新的一行,在輸出時就會走行。而nonl()可以把平移關上。 關上平移之后,ncurses做光標移動操作時速度就會快一些。 ------------------------------ 輸入選項

int keypad(win,bf) bf為TRUE,函數在等待輸入時會使能用戶終端的鍵盤上的小鍵盤。 ncurses將返回一個鍵代碼,該代碼在.h頭文件中被定義為KEY_*宏, 它是針對小鍵盤上的功能鍵和方向鍵的。對于PC鍵盤來說, 這一點是非常有幫助的,因為這樣用戶就可以使能數字鍵和光標鍵。 int meta(win.bf) bf為TRUE,從getch()返回的鍵代碼將是完整的8位(最高位將不會被去掉) int cbreak() int nocbreak() int crmode() int nocrmode() cbreak()和nocbreak()將把終端的CBREAK模式打開或關閉。如果CBREAK打開則程序就可以立刻使用讀取的輸入信息。如果CBREAK關閉,則輸入將被緩存 起來,直到產生新的一行(注意:crmode()和nocrmode()只是為了提供向上兼容性,不要使用它們) int raw() int noraw() 這兩個函數將把RAW模式打開或關閉。RAW與CBREAK相同, 它們的區(qū)別在于RAW模式不處理特殊字符。 int echo() int noecho() 如果把echo()設置為TRUE,則用戶所敲的輸入將會回送并顯示出來, 而noecho()則對此保持沉默。 int halfdelay(t) 此函數與cbreak()相似,但它要延遲t秒鐘。 int nodelay(win,bf) 終端將被設置為非阻塞模式。如果沒有任何輸入則getch()將返回ERR, 否則如果設置為FALSE,則getch()將等待,直到用戶按下某個鍵為止。 int timeout(t) int wtimeout(win,t) 筆者提倡大家使用這兩個函數,而不要使用halfdelay(t)和nodelay(win,bf)getch()的結果取決于t的值。如果t是正數,則讀操作將被阻塞t毫秒; 如果t為零,則不發(fā)生任何阻塞;如果t是負數,則程序將阻塞,直到有輸入為止 int notimeout(win,bf) 如果bf為TRUE,則getch()將使用一個特殊的定時器(一秒鐘長)。到時間以后 再對以Esc等鍵打頭的輸入序列進行解釋。 int typeahead(fd) 如果fd是-1,則不檢查超前鍵擊,否則ncurses將使用文件描述符fd來進行這些檢查 int int rflush(win,bf) 當bf為TRUE時使能該函數。在終端上按下任意中斷鍵(quit、break.)時, 所有的輸出將會刷新到tty驅動程序隊列中。 </Content> </Issue> <Replys> <Reply> <PostUserNickName></PostUserNickName> <rank>四級(中級)</rank> <ranknum>user4</ranknum> <credit>97</credit> <ReplyID>6339214</ReplyID> <TopicID>984818</TopicID> <PostUserId>202193</PostUserId> <PostUserName>qisiwole</PostUserName> <Point>0</Point> <Content>------------------------------ 終端屬性 int baudrate()此函數返回終端的速度,以bps為單位。 char erasechar()此函數返回當前刪除的字符。 char killchar()此函數返回當前殺死的字符。 int has_ic() int has_il()如果終端具有插入/刪除字符的能力,則has_rc()將返回TRUE如果終端具有插入/刪除行的能力,則has_il()將返回TRUE, 否則這兩個函數將返回ERR。(注:尚未實現) char *longname()此函數所返回的指針允許用戶訪問當前終端的描述符。 chty petermattrs()(注:此函數尚未實現) char *termname()這個函數從用戶環(huán)境中返回TERM的內容。(尚未實現) -------------------------------- 更新終端 int refresh() int wrefresh(win) refersh()將把窗口映像拷貝到終端,而wrefresh(win)將把窗口映像 拷貝到win,并使它看起來象原來的樣子。 int wnoutrefresh(win) int doupdate() wnoutrefresh(win)將會只拷貝到窗口win,這意味著在終端上將不進行任何輸出,但是虛擬屏幕實際上看起來象程序員所希望的那樣。doupdate()將輸 出到終端上。程序可以改變許多窗口,對每個窗口都調用一次 wnoutrefresh(win),然后再調用一次doupdate()來更新物理屏幕。 int redrawln(win) int wredrawln(win,bline,blines) 如果在往屏幕上輸出新內容時需要清除一些行或者整個屏幕,可以使用這兩 個函數。(可能這些行已經被破壞了或者由于其他的原因。) int touchwin(win) int touchline(win,start,count) int wtouchln(win,y,n,changed) int untouchwln(win) 這些函數通知ncurses整個win窗口已經被改動過了,或者從start直到 start+count的這些行已經被改動過了。例如,如果用戶有一些重疊的窗口 (正如在example.c中一樣),對某個窗口的改動不會影響其他窗口的映像。 wtouchln(.) 將按掀從y開始的n行。如果change的值是TRUE,則這些行被按掀過了, 否則就還未被按掀過(改變或未改變)。 untouchwin(win)將把窗口win標記為自上次調用refresh()以來還未被按掀。 int ls_linetouched(win,line) int ls_wint ouched(win) 通過使用這兩個函數,用戶可以檢查自從上次調用refresh()以來, 第line行或者窗口win是否已被按掀過。 ------------------------------- 視頻屬性與顏色 ncurses定義了八種顏色,在帶有彩色支持的終端上用戶可以使用這些顏色。 首先,調用start_color()初始化顏色數據結構, 然后使用has_colors()檢查終端權能。 start_color()將初始化COLORS和COLOR_PAIR。 前者是終端所支持的最多的顏色數目,而后者是用戶可以定義的色彩對的最大數目。 兩個屬性可以使用OR操作組合起來?!癈OLORPAIRS_1COLORS_1”

int color_content(color,t,g,b)

此函數獲取color的顏色成份r,g和b。 首先,函數CheckColor調用start_color()初始化顏色,如果當前終端有彩色的話, 則函數has_colors()將返回TRUE。我們檢查了這一點以后,調用init_pair(.) 把前景色和背景色組合起來,再調用wattrset(.)為特定的窗口設置這些顏色對。 此外,如果我們使用的是黑白終端,還可以單獨使用wattrset(.)來設置屬性。 如果要在xterm中獲取顏色,我認為最佳方法是使用ansi_xterm, 以及來自MidnightCommander的terminfo項目。用戶可以獲取ansi_xterm 和MidnightCommander的源代碼(mc_x.x.tar.gz),然后編譯ansi_xterm, 并對mc_x.x.tar.gz文檔中的xterm.ti和vt100.ti使用tic命令。 執(zhí)行ansi_xterm,把它試驗出來

--------------------------------- 光標和屏幕坐標

int move(y,x) int wmove(win,y,x) move()將移動光標,而wmove(win)則從窗口win中移動光標。對 輸入/輸出函數來說,還定義了其他的一些宏,在調用特定函數之前, 這些宏可以移動光標。

int curs_set(bf) 這個函數將把光標置為可見或者不可見,如果終端有這個功能 void getyx(win,y,x) getyx(.)將返回當前光標位置。(注意:這是一個宏) void getparyx(win,y,x) 如果win是個子窗口,getparyx(.)將把該窗口對應父窗口的坐標存儲在y和x則y和x都將為-1。(注:此函數尚未實現)

void getbegyx(win,y,x) void getmaxyx(win,y,x) int getmaxx(win) int getmaxy(win) 這些函數把窗口win的開始坐標和大小坐標存放在y和x中。 int getsyx(int y,int x) int setsyx(int y,int x) getsyx(.)把虛擬屏幕光標存放在y和x中,而setsyx(.)則設置這個坐標。 如果y和x是-1, 用戶調用getsyx(.)將會設置leaveok。

------------------------------ 滾動

int tscrollok(win,bf) 當光標在屏幕的右下角并且輸入了一個字符(或者新的一行)時,如bf為TRUE則窗口win中的文本將上滾一行。如果bf為FALSE,則鼠標留在原來的位置上 當滾動特征打開時,使用下面的函數可以滾動窗口中的內容。 (注意:當用戶在窗口的最 后一行輸入一個新行時,也應該發(fā)生相應的滾動操作, 所以在使用scrollok(.)時要十分小心, 否則可能會得到出乎意料的結果。) int scrol(win) 此函數將使窗口向上滾動一行(數據結構中的行也向上滾動)。 int acrl(n) int wscrl(win,n) 這兩個函數將使屏幕或者窗口win向上向下滾動,滾動方向取決于整數n的值 如果n是正數,則窗口向上滾動n行,否則如果n是負數,則窗口向下滾動n行 int setscrreg(t,b) int wsetscrreg(win,t,b) 這兩個函數設置一個軟滾動區(qū)。 ------------------------------------- 小鍵盤

WINDOW *newpad(nlines,ncols) WINDOW *subpad(orlg,nlines,ncols,begy,begx) int prefresh(pad,pminrow,pmincol,sminrow,smincol,smaxrow,smaxcol) int pnoutrefresh(pad,pminrow,pmincol,sminrow,smincol,smaxrow,smaxcol) int pechochar (pad,ch) ---------------------------- 軟標簽

int slk_init(int fmt) int slk_set(int labnum,char *label,int fmt) int slk_refresh() int slk_noutrefresh() char *slk_label(int labnum) int slk_clear() int slk_restore() int slk_touch() int slk_attron(chty peattr) int slk_attrset(chty peattr) int slk_attroff(chty peattr) 這些函數是與attron(attr)、attrset(attr)和attroft(attr)相對應的, 但它們尚未實現。 ------------------------------ int beep() int Flash() char *unctrl(chty pec) char *keyname(int c) int filter() (注:以上函數尚未實現。) void use_env(bf) int putwin(WINDOW *win,FILE*filep) (注:以上函數尚未實現。) WINDOW *getwin(FILE*filep) (注:以上函數尚未實現。) int delay_output(int ms) int flushinp() -------------------------------------- 低級訪問

int def_prog_mode() int def_shell)_mode() int reset_prog_mode() int reset_shell_mode() int resetty() int savetty() int ripoffline(int line,int (*init)(WINDOW *,int )) int napms(int ms) --------------------------------- 屏幕轉儲

int scr_dump(char *filename) (注:此函數尚未實現。) int scr_restore(char *filename) (注:此函數尚未實現。) int scr_init(char *filename) (注:此函數尚未實現。) int scr_set(char *filename) (注:此函數尚未實現。) ----------------------------------- Termcap模擬

int tgetent(char *bp,char *name) int tgetflag(char fd[2]) int tgetnum(char fd[2]) char *tgetstr(char fd[2],char **area) char tgoto(char *cap,int col,int row) int tputs(char *str,int offset,int (*putc)()) ------------------------------------------- 調試函數

void _init(trace() void _trace(char *,...) char *_traceattr(mode) void traceon() void traceoff() </Content> <PostDateTime>2002-08-31 09:29:00</PostDateTime> </Reply><Reply> <PostUserNickName></PostUserNickName> <rank>四級(中級)</rank> <ranknum>user4</ranknum> <credit>97</credit> <ReplyID>6339224</ReplyID> <TopicID>984818</TopicID> <PostUserId>202193</PostUserId> <PostUserName>qisiwole</PostUserName> <Point>0</Point> <Content>-------------------------------------------

8.21.1布爾型權能 變量權能名稱初始化描述 auto_left_marginbwbwcub1從最后一列換行到第0列 auto_right_marginamam終端的邊界自動對齊 back_color_erasebceut屏幕以背景色清除 can_changeccccc終端可以重新定義現有的顏色 ceol_standout_glitch xhpxs標準輸出不會被覆蓋所清除(hp) col_addr_glitchxhpaYA對hpa/mhpa大寫字符而言只作正向移動 cpi_changes_rescpixYF改變字符間距將會影響解析度 cr_cancels_micro_mode crxm YB使用cr關閉宏模式 eat_newline_glitchxenlxn在80列之后將忽略新行(Concept) erase_overtrikeeoeo可以用空格來刪除疊印 generic_typegngn通用行類型(如dialup,switch) hard_copyhchc硬拷貝終端 hard_cursorchtsHC光標很難看到 has_meta_keykmkm有一個元鍵(shift,設置奇偶校驗位) has_print _wheeldaisyYC打印機需要操作員來改變字符集 has_status_linehshs有一個額外的“狀態(tài)行” hue_lightness_saturation hlshl終端只使用HLS顏色表示法(Tektronix) insert_null_glitchinin插入模式,能識別空行 lpi_changes_reslpixYG改變行距將影響解析度 memory_abovedada顯示可以保留在屏幕上方 memory_belowdbdb顯示可以保留在屏幕下方 move_insert_modemirmi在插入模式下可以安全地移動 move_standout_mode msgrms在標準輸出模式下可以安全地移動 needs_xon_xoffnxonnx不能填充,需要nxon/xoff no_esc_ctl_cxsbxbBeehive信號(F1=Escape,F2=CtrlC) non_rev_rmcupnrrmcNRsmcup不能反轉rmcup no_pad_char npcNP填充字符不存在 non_dest_scroll_region ndscr ND滾動區(qū)不可摧毀 over_strikeosos終端可以疊印 prtr_silentmc5i5i打印機不向屏幕回送 row_addr_glitchxvpaYDvhp/mvpa大寫字母只能作正向移動 semi_auto_right_margin samYE打印在最后一列將導致cr status_line_esc_okeslokes在狀態(tài)行上可以使用Esc鍵 dest_tabs_magic_smso xtxt制表符不可用(Teleray1061) tilde_glitchhzhzHazel_tine;不能打印's transparent_underline ulul下劃線字符疊印 xon_coffxonxo終端使用xon/xoff握手機制 8.21.2數值型權能 變量權能名稱初始值描述 bit_image_entwining bitwinYo在SYSV中未作描寫 buffer_capacitybufszYa在打印前緩存的字節(jié)的數目 columnscolsco在一行中列的數目 dot_vert_spacingspinvYb在水平方向上點與點的距離,以每英寸多少點為單位 dot_horz_spacingspinhYc在垂直方向上針之間的距離,以每英寸多少針為單位 init_tabsitit每#個空格算一個制表符的位置 label_heightlhlh每個標簽多少行 label_widthlwlw每個標簽多少列 lineslinesli屏幕或頁面上行的數目 lines_of_memorylmlm如果&gt;lines則表示內存中的行數,0意味著可變 magic_cookIE_glitch xmcsgsmso或rmso所剩下的空白字符的數目 max_colorscolorsCo在屏幕上顏色的最大數目 max_micro_address maddrYd在micro_._address中的最大值 max_micro_jumpmjumpYe在parm_._micro中的最大值 max_pairspairspa在屏幕上顏色對的最大數目 micro_col_sizemcsYf在宏模式中字符間距的大小 micro_line_sizemlsYg在宏模式中行距的大小 no_color_videoncvNC不能使用彩色的視頻屬性 number_of_pinsnpinsYh在打印頭中針的數目 num_labelsnlabNl屏幕上標簽的數量 output_res_char orcYi水平解析度,以每行單元數為單位 output_res_lineorlYj垂直解析度,以每行單元數為單位 output_res_horz_inch orhiYk水平解度,以每英寸單元數為單位 output_res_vert_inch orviYl垂直解析度,以每英寸單元數為單位 padding_baud_rate pbpb在需要cr/nl填充時最低的波特率 virtual_terminalvtvt虛擬終端號(Unix系統(tǒng)) width_status_linewslws狀態(tài)行的第n列

(下面的數值型權能是在SYSVterm結構中定義的,但在man幫助中還沒有提供對它們的 描述。我們的解釋來自term結構的頭文件。) 變量權能名稱初始值描述

bit_image_typebitypeYp位映像設備的類型 buttonsbtnsBT鼠標按鍵的數目 max_attributesmama終端能夠處理的最多的組合屬性 maximum_Windows wnumMW可定義窗口的最大數目 print _ratecpsYm打印速率,以每秒字符數為單位 wide_char _sizewidcsYn在雙寬度模式中字符間距的大小

8.21.3字符串型權能 變量權能名稱初始值描述

acs_char sacscac圖形字符集對一def=vt100 alt_scancode_escscesaS8掃描碼模擬的另一種換碼(默認值是VT100) back_tab cbtbt向后tab(p) bellbelbl聲音信號(響鈴)(p) bit_image_repeatbirepXy把位映像單元重復#1#2次(使用tparm) bit_image_newlinebinelZz移動到位映像的下一行(使用tparm) bit_image_carriage_return bicr Yv移動到同一行的開頭(使用tparm) carriage_returncrcr回車(p*) change_char _pitch cpiZA改變?yōu)槊坑⒋?個字符 change_line_pitchlpiZB改變?yōu)槊坑⒋?行 change_res_horzchrZC改變水平解度 change_res_vertcvrZD改變垂直解析度 change_scroll_region csrcs把滾動區(qū)改變?yōu)閺?1行到#2行(VT100)(PG) char _paddingrmprP與ip相似,但它用在插入模式中 char _set_namescsnmZy字符集名稱的列表 clear_all_tabstbcct清除所有的制表符停止(p) clear_marginsmgcMC清除所有的頁邊 clear_screenclearcl清除屏幕和home光標(p*) clr_bolel1cb清除到行首 clr_eolelce清除到行尾(P) clr_eosedcd清除到顯示的末尾(p*) code_set_initcsinci多個代碼集合的初始化序列 color_namescolornmYw#1號顏色的名稱 column_addresshpach設置光標列(PG) command_char acter cmdchCC在原型中終端可以設置的cmd字符 cursor_addresscupcm屏幕光標移動到#1行#2列(PG) cursor_downcud1do下移一行 cursor_homehomehoHome光標(如果沒有環(huán)的話) cursor_invisiblecivisvi使光標不可見 cursor_leftcub1le把光標向左移一個空格 cursor_mem_address mrcupCM內存相對的光標尋址 cursor_normalcnormve使光標以最普通的外形顯示(undovs/vi) cursor_rightcuf1nd不具有破壞性的空白(光標向右移) cursor_to_llllll最后一行,第一列(如果沒有環(huán)的話) cursor_upcuu1upUpline(光標向上移)

cursor_visiblecvvisvs使光標可見 define_bit_image_region defbiYx定義方形的位映像區(qū)(使用tparm) define_char defcZE定義字符集中的某個字符 delete_char acterdch1dc刪除字符(p*) delete_linedl1dl刪除行(p*) device_typedevtdv顯示語言/代碼集支持 dis_status_linedslds關閉狀態(tài)行 display_pc_char dispcS1顯示PC字符 down_half_linehdhd向下移動半行(向前換1/2行) ena_acsenacseA使能另一個字符集合 end_bit_image_region endbi Yy結束位映像區(qū)(使用tparm) enter_alt_char set_mode sMacs as開始另一個字符集(p) enter_am_modesmamSA打開自動對齊特征 enter_blink_modeblink mb打開字符閃爍效果 enter_bold_modeboldmd打開粗體(特別亮)模式 enter_ca_modesmcupti啟動使用環(huán)的程序的字符串 enter_delete_modesmdcdm刪除模式(輸入) enter_dim_modedimmh打開半亮模式 enter_doublewide_mode swidm ZF使能雙倍寬度模式 enter_draft_qualitysdrfqZG設置草圖效果的打印方式 enter_insert_modesmirim插入模式(輸入) enter_italics_modesitmZH使能斜體字模式 enter_leftward_mode slmZI使能向左回車移動 enter_micro_modesmicmZJ使能宏移動功能 enter_near_letter_quality snlqZK設置NLQ打印 enter_normal_quality snrmqZL設置一般質量的打印方式 enter_pc_char set_mode smpch S2輸入PC字符顯示模式 enter_protected_mode protmp打開保護模式 enter_reverse_mode revmr打開反轉視頻模式 enter_scancode_mode smscS4輸入PC掃描碼 enter_secure_mode invismk打開空白模式(字符不可見) </Content> <PostDateTime>2002-08-31 09:29:00</PostDateTime> </Reply><Reply> <PostUserNickName></PostUserNickName> <rank>四級(中級)</rank> <ranknum>user4</ranknum> <credit>97</credit> <ReplyID>6339230</ReplyID> <TopicID>984818</TopicID> <PostUserId>202193</PostUserId> <PostUserName>qisiwole</PostUserName> <Point>0</Point> <Content>enter_shadow_mode sshmZM使能陰影打印模式 enter_standout_mode smso so開始標準輸出模式 enter_subscript_mode ssubm ZN使能下標打印 enter_superscript_mode ssupm ZO使能上標打印 enter_underline_mode smul us開始下劃線模式 enter_upward_mode sum ZP使能向上回車移動 enter_xon_modesmxonSX打開xon/xoff握手機制 erase_char sechec刪除#1個字符(PG) exit_alt_char set_mode rmacs ae終止可選的字符集(P) exit_am_modermamRA關閉自動對齊方式 exit_attribute_mode sgr0me關閉所有屬性 exit_ca_modermcupte終止使用環(huán)的程序的字符串 exit_delete_modermdced終止刪除模式 exit_doublewide_mode rwidm ZQ關閉雙倍寬度打印方式 exit_insert_modermirei結束插入模式 exit_italics_moderitmZR關閉斜體打印模式

exit_leftward_moderlmZS使能右向(普通的)回車移動 exit_micro_modermicmZT關閉宏移動能力 exit_pc_char set_mode rmpch S3關閉PC字符顯示 exit_scancode_mode rmsc S5關閉PC掃描碼模式 exit_shadow_mode rshmZU關閉陰影打印模式 exit_standout_mode rmsose結束標準輸出模式 exit_subscript_mode rsubmZV關掉下標打印方式 exit_superscript_mode rsupm ZW關掉上標打印方式 exit_underline_mode rmulue結束下劃線模式 exit_upward_moderumZX打開向下(普通的)回車移動 exit_xon_modermxonRX關掉xon/xoff握手機制 flash_screenflashvb可視響鈴(不能移動光標) form_feedffff硬拷貝終端頁面的換頁(p*) from_status_linefslfs從狀態(tài)行返回 init_1stringis1i1終端初始化字符串 init_2stringis2i2終端初始化字符串 init_3stringis3i3終端初始化字符串 init_fileifif所包含的文件名稱 init_progiprogiP初始化程序的路徑名 initialize_colorinitcIc初始化顏色的定義 initialize_pairinitpIp初始化顏色對 insert_char acterich1ic插入字符(P) insert_lineil1al加入一個新的空白行(p*) insert_paddingipip在插入的字符之后再插入填充字符(p*) key_a1ka1K1小鍵盤左上方的鍵 key_a3ka3K3小鍵盤右上方的鍵 key_b2kb2K2小鍵盤中央的鍵 key_backspacekbskb由回退鍵所發(fā)送 key_begkbeg1開始鍵 key_btabkcbtkB向右一tab鍵 key_c1kc1K4小鍵盤左下角的鍵 key_c3kc3K5小鍵盤右下角的鍵 key_cancelkcan2取消鍵 key_catabktbcka由clear_all_tabs鍵發(fā)送 key_clearkclrkC由清除屏幕或者刪除鍵發(fā)送 key_closekclo3關閉鍵 key_commandkcmd4命令鍵 key_copykcpy5拷貝鍵 key_createkcrt6創(chuàng)建鍵 key_ctabkctabkt由clear_tab鍵發(fā)送 key_dckdch1kD由刪除字符鍵發(fā)送 key_dlkdl1kL由刪除行鍵發(fā)送 key_downkcud1kd由終端向下光標鍵發(fā)送 key_eickrmirkM在插入模式中由rmir或smir發(fā)送 key_endkend7結束鍵 key_enterkent8輸入/發(fā)送鍵 key_eolkelkE由clear_to_end_of_line鍵發(fā)送

key_eoskedkS由clear_to_end_of_screen鍵發(fā)送 key_exitkext9退出鍵 key_findkfnd0查找鍵 key_helpkhlp%1幫助鍵 key_homekhomekh由home鍵發(fā)送 key_ickich1kl由inschar /enterinsmode鍵發(fā)送 key_ilkil1kA由插入行發(fā)送 key_leftkcub1kl由終端向左鍵發(fā)送 key_llkllkH由home_down鍵發(fā)送 key_markkmrk%2標記鍵 key_messagekmsg%3消息鍵 key_movekmov%4移動鍵 key_nextknxt%5下一個鍵 key_npageknpkN由下頁鍵發(fā)送 key_openkopn%6打開鍵 key_optionskopt%7選項鍵 key_ppagekppkP由前頁鍵發(fā)送 key_previouskprv%8前一鍵 key_print kprt%9打印鍵 key_redokrdo%0redo鍵 key_refrencekref&amp;1引用鍵 key_refreshkrfr&amp;2刷新鍵 key_replacekrpl&amp;3替換鍵 key_restartkrst&amp;4重啟鍵 key_resumekres&amp;5恢復鍵 key_rightkcuf1kr由終端向右鍵發(fā)送 key_saveksav&amp;6保存鍵 key_sbegkBEG&amp;9按下開始鍵的同時按下shift鍵 key_scancelkCAN&amp;0按下取消鍵的同時按下shift鍵 key_scommandkCMD*1按下命令鍵的同時按下shift鍵 key_scopykCPY*2按下拷貝鍵的同時按下shift鍵 key_screatekCRT*3按下創(chuàng)建鍵的同時按下shift鍵 key_sdckDC*4按下刪除字符鍵的同時按下shift鍵 key_sdlkDL*5按下刪除行鍵的同時按下shift鍵 key_selectkslt*6選擇鍵 key_sendkEND*7按下結束鍵的同時按下shift鍵 key_seolkEOL*8按下行尾鍵的同時按下shift鍵 key_sexitkEXT*9按下退出鍵的同時按下shift鍵 key_sfkindkF由前滾/下滾鍵發(fā)送 key_sfindkFND*0按下查找鍵的同時按下shift鍵 key_shelpkHLP#1按下幫助鍵的同時按下shift鍵 key_shomekHOM#2按下Home鍵的同時按下shift鍵 key_sickIC#3按下插入字符鍵的同時按下shift鍵 key_sleftkLFT#4按下向左鍵的同時按下shift鍵 key_smessagekMSG%a按下消息鍵的同時按下shift鍵 key_smovekMOV%b按下移動鍵的同時按下shift鍵 key_snextkNXT%c按下向后鍵的同時按下shift鍵

key_soptionskOPT%d按下選項鍵的同時按下shift鍵 key_spreviouskPRV%e按下向前鍵的同時按下shift鍵 key_sprint kPRT%f按下打印鍵的同時按下shift鍵 key_srkrikR由后滾/下滾鍵發(fā)送 key_sredokRDO%g按下redo鍵的同時按下shift鍵 key_sreplacekRPL%h按下替換鍵的同時按下shift鍵 key_srightkRIT%l按下向右鍵的同時按下shift鍵 key_srsumekRES%j按下恢復鍵的同時按下shift鍵 key_ssavekSAV!1按下保存鍵的同時按下shift鍵 key_ssuspendkSPD!2按下中斷鍵的同時按下shift鍵 key_sundokUND!3按下取消鍵的同時按下shift鍵 key_stabkhtskT由set_tab鍵發(fā)送 key_suspendkspd&amp;7中斷鍵 key_undokund&amp;8取消鍵 key_upkcuulku由終端的向上鍵發(fā)送 keypad_localrmkxke不處于“小鍵盤發(fā)送”方式之中 keypad_xmitsmkxks把終端置為“小鍵盤發(fā)送”方式 lab_f0lf0l0如果不是f0的話,則為功能鍵f0的標簽 </Content> <PostDateTime>2002-08-31 09:30:00</PostDateTime> </Reply><Reply> <PostUserNickName></PostUserNickName> <rank>一級(初級)</rank> <ranknum>user1</ranknum> <credit>100</credit> <ReplyID>6339448</ReplyID> <TopicID>984818</TopicID> <PostUserId>200455</PostUserId> <PostUserName>Linuxman2002</PostUserName> <Point>0</Point> <Content>up </Content> <PostDateTime>2002-08-31 09:46:00</PostDateTime> </Reply><Reply> <PostUserNickName></PostUserNickName> <rank>四級(中級)</rank> <ranknum>user4</ranknum> <credit>97</credit> <ReplyID>6339495</ReplyID> <TopicID>984818</TopicID> <PostUserId>202193</PostUserId> <PostUserName>qisiwole</PostUserName> <Point>0</Point> <Content>lab_f1lf1l1如果不是f1的話,則為功能鍵f1

的標簽 lab_f2lf2l2如果不是f2的話,則為功能鍵f2

的標簽 lab_f3lf3l3如果不是f3的話,則為功能鍵f3

的標簽 lab_f4lf4l4如果不是f4的話,則為功能鍵f4

的標簽 lab_f5lf5l5如果不是f5的話,則為功能鍵f5

的標簽 lab_f6lf6l6如果不是f5的話,則為功能鍵f6

的標簽 lab_f7lf7l7如果不是f7的話,則為功能鍵f7

的標簽 lab_f8lf8l8如果不是f8的話,則為功能鍵f8

的標簽 lab_f9lf9l9如果不是f9的話,則為功能鍵f9

的標簽 lab_f10lf10la如果不是f10的話,則為功能鍵

f10的標簽 label_onsmlnLO打開軟標簽 label_offrmlnLF關閉軟標簽 meta_offrmmmo關閉“元模式” meta_onsmmmm打開“元模式”(8位) micro_column_address mhpa ZY近似宏調整的列—地址, micro_downmcud1ZZ近似宏調整的光標—向下 micro_leftmcutb1Za近似宏調整的光標—向左 micro_rightmcuf1Zb近似宏調整的光標—向右 micro_row_address mvpaZc近似宏調整的行—地址 micro_upmcuu1Zd近似宏調整的光標—向上 newlinenelnw新行(行為近似于cr后跟lf) order_of_pinsporderZe匹配軟件以及打印頭中的針 orig_colorsococ重置所有的顏色對 orig_pairopop把默認的顏色對設置為原始的那

個 pad_char padpc填充字符(非空) parm_dchdchDC刪除#1字符(PG*) parm_delete_linedlDL刪除#1行(PG*) parm_down_cursor cudDO把光標向下移#1行(PG*) parm_down_micro mcudZf近似宏調用的cub

parm_ichichIC插入#1個空白符號(PG*) parm_indexindnSF向上滾動#1行(PG) parm_insert_lineilAL加入#1個新的空白行(PG*) parm_left_cursorcubLE把光標向左移#1個空格(PG) parm_left_micromcubZg近似宏調整中的cub parm_right_cursor cufRl把光標向右移#1個空格(PG*) parm_right_micromcufZh近似宏調整中的cuf parm_rindexrinSR回滾#1行(PG) parm_up_cursorcuuUP把光標上移#1行(PG*) parm_up_micromcuuZi近似宏調整中的cuu pkey_keypfkeypk把功能鍵#1定義為字符#2的類型 pkey_localpflocpl把功能鍵#1定義為執(zhí)行字符串#2 pkey_xmitpfxpx把功能鍵#1定義為發(fā)送字符串#2 pkey_plabpfxlxl把功能鍵#1定義為發(fā)送#2,并顯

示#3 plab_normplnpn編程標簽#1,以顯示字符串#2 print _screenmc0ps打印屏幕內容 prtr_nonmc5ppO打開打印機,打印#1個字節(jié) prtr_offmc4pf關閉打印機 prtr_onmc5po打開打印機 repeat_char reprp把字符#1重復#2次(PG*) req_for_inputrfiRF輸入請求 reset_1stringrs1r1把終端完全置為sane方式 reset_2stringrs2r2把終端完全置為sane方式 reset_3stringrs3r3把終端完全置為sane方式 reset_filerfrf包含重置字符串的文件名稱 restore_cursorrcrc把光標置為上一個屏幕上的位置 row_addressvpacv垂直絕對位置(設置行)(PG) save_cursorscsc保存光標位置(P) scancode_escapescescS7為了掃描碼模擬按下Esc鍵 scroll_forwardindsf把文本向上滾動(P) scroll_reverserisr把文本向下滾動(P) select_char _setscsZj選擇字符集 set0_des_seqs0dss0切換到代碼集0(EUC集0,ASCII) set1_des_seqs1dss1切換到代碼集1 set2_des_seqs2dss2切換到代碼集2 set3_des_seqs3DSs3切換到代碼集3 set_a_backgroundsetabAB使用ANSI設置背景顏色 set_a_foregroundsetafAF使用ANSI設置前景顏色 set_attributessgrsa定義視頻屬性(PG9) set_backgroundsetbSb設置當前背景顏色 set_bottom_marginsmgbZk設置當前行的底部邊界 set_bottom_margin_parm smgbp ZI從bottomset_color_band的#1行

或#2行設置底行 setcolorYz改變#1號色帶顏色 set_color_pairscpsp設置當前顏色對 set_foregroundsetfSf設置當前前景色 set_left_marginsmglML設置當前行的左邊界 set_left_margin_parm smglpZm在#1行(#2行)設置左(右)邊界

set_lr_marginsmglrML設置左右邊界 set_page_lengthslinesYZ把頁的長度設置為#1行(使用

tparm) set_right_marginsmgrMR把右邊界設置為當前列 set_right_margin_parm smgrp Zn把右邊界設置為#1列 set_tabhtsst在當前列的所有行設置制表符 set_tb_marginsmgtbMT設置上下邊界 set_top_marginsmgtZo把上邊界設置為當前行 set_top_margin_parm smgtp Zp把上邊界設置為#1行 set_WINDOW windwi當前窗口是從#1行到#2行,從#3

列到#4列 start_bit_imagesbimZq開始打印位映像圖形 start_char _set_def scsdZr開始定義字符集 stop_bit_imagerbimZs結束打印位映像圖形 stop_char _set_def rcsdZt結束定義字符集 subscript_char acters subcs Zu下標字符的列表 superscript_char acters supcs Zv 上標字符的列表 tabhtta跳轉到下面8個空格硬件的制表

符位置 these_cause_crdocrZw這些字符導致CR to_status_linetslts跳到狀態(tài)行,第1列 underline_char ucuc給某字符劃下劃線,并移過它 up_half_linehuhu上移半行(反轉1/2行) xoff_char actercoffcXFXON字符 xon_char acterxoncXNXOFF字符

(下面的字符串權能是在SYSVr終端結構中定義的,但在man幫助信息中還

未作描述,對 它們的解釋是從終端結構頭文件中得到的。)

label_formatflnLf?? set_clocksclkSC設置時鐘 display_clockdclkDK顯示時鐘 remove_clockrmclkRC刪除時鐘 create_WINDOW cwinCW把窗口#1定義為從#2行,#3列到#4

行,#5列 goto_WINDOW wingoWG跳到窗口#1 hanguphupHU掛起電話 dial_phonedialDI撥電話號碼#1 quick_dialqdialQD撥電話號碼#1,但不做進度檢查 tonetoneTO選擇接觸聲調撥叫 pulsepulsePU選擇脈沖撥叫 flash_hookhookfh閃光切換分支 fixed_pausepausePA暫停2~3秒 wait_tonewaitWA等待撥叫聲音 user0u0u0用戶字符串#0 user1u1u1用戶字符串#1 user2u2u2用戶字符串#2 user3u3u3用戶字符串#3 user4u4u4用戶字符串#4 user5u5u5用戶字符串#5 user6u6u6用戶字符串#6 user7u7u7用戶字符串#7 user8u8u8用戶字符串#8 user9u9u9用戶字符串#9 get_mousegetmGmsurses 應獲得按鈕事件 key_mousekmousKm?? mouse_infominfoMi鼠標狀態(tài)信息 pc_term_optionspctrmS6PC終端選項 req_mouse_posreqmpRQ請求鼠標位置報告 zero_motionzeromZx后繼字符沒有移動 --------------------------------------------------------------------- 大半年前看ncurses庫的筆記 共享一下吧。

標簽: Unix系統(tǒng)
主站蜘蛛池模板: 欧美日韩在线成人看片a | 国产色中色 | 久久精品综合国产二区 | 午夜性刺激免费视频 | 欧美日韩国产亚洲一区二区三区 | 久久久免费视频观看 | 欧美成人禁片在线观看网址 | 精品亚洲一区二区在线播放 | 美国一级特a黄 | 欧美日韩在线高清 | 亚洲成人免费在线视频 | 欧美一级看片免费观看视频在线 | 色婷婷精品免费视频 | 日韩中文字幕在线观看 | 国产亚洲高清不卡在线观看 | 国产在线观看一区 | 大陆一级黄色片 | 欧美日本一道道一区二区三 | 忘忧草综合久久综合88亚洲 | 成人亚洲视频 | 久草首页在线 | 精品欧美一区二区三区四区 | 欧美 日韩 亚洲另类专区 | 国产高清网址 | 国内一级野外a一级毛片 | 狠狠五月天中文字幕 | 日本高清二三四本2021 | 2020年国产一国产一级毛卡片 | 国产91第一页 | 午夜羞羞影院 | 亚洲欧美精品在线 | 黄色一级片免费播放 | 国内三级视频 | 国产美女操 | 国产在线一区二区三区欧美 | 三级免费网址 | 亚洲在线一区 | 免费jizz在在线播放国产 | 国产无套 | 最新精品视频在线观看 | 日韩欧美一区黑人vs日本人 |