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

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

?? 17.htm

?? UNIX環(huán)境下C編程的詳細詳細介紹
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<title>C:\WINDOWS\Desktop\UnixProg\7.htm</title>
</head>

<body>
<font SIZE="2">

<h1 align="center">第十七章 與PostScript打印機通信 </h1>

<p>17.1 引言 </p>

<p>我們現(xiàn)在開發(fā)一個可以與Postscript打印機通信的程序。PostScript打印機目 
</p>

<p>前使用很廣,它一般通過RS-232端口與主機相連。這樣就使得我們有可能使用第十 
</p>

<p>一章中的終端I/O函數(shù)。同樣,與PostScript打印機通信是全雙工的,我們發(fā)送數(shù) 
</p>

<p>據(jù)給打印機時也要準備好從打印機讀取狀態(tài)消息。這樣,我們又有可能使用12.5節(jié) 
</p>

<p>中的I/O多路轉接函數(shù):select 和poll。我們所開發(fā)的這個程序是基于James 
Cla </p>

<p>rk 所寫的lprps程序。這個程序和其他一些程序共同組成lprps軟件包,可以在co 
</p>

<p>mp.sources.misc新聞組中找到(Volume 21,1991年7月)。 </p>

<p>17.2 PostScript 通信機制 </p>

<p>關于PostScript打印機所需要知道的第一件事就是我們并不是發(fā)送一個文件給 
</p>

<p>打印機去打印-我們只是發(fā)送一個PostScript程序給打印機讓它去執(zhí)行。在PostSc 
</p>

<p>ript打印機中通常有一個PostScript解釋器來執(zhí)行這個程序,生成輸出的頁面。如 
</p>

<p>果PostScript程序有錯誤,PostScript打印機(實際上是PostScript解釋器)返回 
</p>

<p>一個錯誤消息,或許還會產生其他輸出。 </p>

<p>下面的PostScript程序在輸出頁面上生成一個熟悉的字符串hello, world。( 
</p>

<p>我們這里并不敘述PostScript編程,詳細情況請參見Adobe Systems[1985和1986] 
</p>

<p>。我們著重在與PostScript打印機的通信上)。 </p>

<p>%! </p>

<p>/Times-Roman findfont </p>

<p>15 scalefont % point size of 15 </p>

<p>setfont % establish current font </p>

<p>300 350 moveto % x=300 y=350 (position on page) </p>

<p>(hello, world) show % output the string to current page </p>

<p>showpage % and output page to output device </p>

<p>如果我們在PostScript程序中改變setfont 為ssetfont,再把它發(fā)送到PostS </p>

<p>cript打印機,結果是什么也沒有被打印。相反的,我們從打印機得到以下消息: 
</p>

<p>%% [ Error: undefined; OffendingCommand: ssetfont ]%% </p>

<p>%% [ Flushing: rest of job (to end-of-file) will be ignored ]%% </p>

<p>這些錯誤消息隨時都可能產生,這也是處理PostScript打印機復雜的地方。我 
</p>

<p>們不能只是將整個PostScript程序發(fā)送給打印機后就不管了-我們必須處理這些潛 
</p>

<p>在的錯誤消息。(在這一章中,我們所說的&quot;打印機&quot;,就是指PostScript解釋器。 
</p>

<p>) </p>

<p>PostScript打印機通常通過RS-232串口與主機相連。這就如同終端的連接一樣 
</p>

<p>,所以我們在第十一章中的終端I/O函數(shù)在這里也適用。(PostScript打印機也可 
</p>

<p>以通過其它方式連接到主機上,例如網(wǎng)絡接口逐漸流行。但目前占主導地位的還是 
</p>

<p>串口相連。)圖17.2 顯示了典型的工作過程。一個PostScript程序可以產生兩種 
</p>

<p>形式的輸出:通過showpage操作輸出到打印機頁面上,或者通過print操作輸出到 
</p>

<p>它的標準輸出(在這里是與主機的串口連接)。 </p>

<p>PostScript解釋器發(fā)送和接受的是七位ASCII字符。PostScript程序可包含所 
</p>

<p>有可打印的ASCII字符。一些不可以打印的字符有著特殊的含義(參見圖17.1)。 
</p>

<p>圖17.1 從主機發(fā)送到PostScript打印機的特殊字符 </p>

<p>圖17.2 用串口連接與Postscript打印機通信 </p>

<p>PostScript的文件終止符(Control-D)用來同步打印機和主機。我們發(fā)送一 
</p>

<p>個PostScript程序到打印機,然后再發(fā)送一個EOF到打印機。當打印機執(zhí)行完Post 
</p>

<p>Script程序后,它就發(fā)回一個EOF。 </p>

<p>當PostScript解釋器正在執(zhí)行一個PostScript程序時,我們可以向它發(fā)送一個 
</p>

<p>中斷(Control-C)。這通常使正在被打印機執(zhí)行的程序終止。 </p>

<p>狀態(tài)查詢消息(Control-T)會使得打印機返回一個一行的狀態(tài)消息。所有的打印 
</p>

<p>機消息都是如下格式: </p>

<p>%% [ key : val ] %% </p>

<p>所有可能出現(xiàn)在狀態(tài)消息中的key: val對,被分號分開。回憶前面例子的返回 
</p>

<p>消息: </p>

<p>%% [ Error: undefined; OffendingCommand: ssetfont ]%% </p>

<p>%% [ Flushing: rest of job (to end-of-file) will be ignored ]%% </p>

<p>這個狀態(tài)消息具有這個格式: </p>

<p>%% [status : idle ]%% </p>

<p>除了idle(沒有作業(yè))外,其它狀態(tài)指示還有busy(正在執(zhí)行一個PostScrip 
</p>

<p>t程序)、 waiting(正在等待執(zhí)行PostScript程序)、 printing(打印中)、i 
</p>

<p>nitializing(初始化)和printing test page(正打印測試頁)。 </p>

<p>現(xiàn)在來考慮PostScript解釋器自己產生的狀態(tài)消息。我們看到以下的消息 
</p>

<p>%% [ Error: error ; OffendingCommand : operator ]%% </p>

<p>總共大約會發(fā)生25種不同的錯誤。通常的錯誤有dictstackunderflow, 
invalidac </p>

<p>cess, typecheck, 和undefined。這里的operator是產生錯誤的PostScript操作。 </p>

<p>一個打印機的錯誤用以下形式來指示。 </p>

<p>%% [ PrinterError: reason ]%% </p>

<p>這兒的reason一般是Out Of Paper(缺紙)、Cover Open(蓋打開)等錯誤。 
</p>

<p>當錯誤發(fā)生時,PostScript解釋器經(jīng)常會發(fā)出另外一個消息 </p>

<p>%% [ Flushing : rest of job (to end-of-file) will be ignored ] %% </p>

<p>我們看一下在特殊字符序列%%[和]%%中的字符串,為了處理這個消息,我們必 
</p>

<p>須分析該字符串。一個PostScript程序也可以通過PostScript的print操作來產生 
</p>

<p>輸出。這個輸出應當傳給發(fā)送程序給打印機的用戶(雖然這并不是我們的打印程序 
</p>

<p>所期望解釋的)。 </p>

<p>圖17.3 列出了PostScript解釋器傳送給主機的特殊字符。 </p>

<p>圖17.3 PostScript解釋器傳送給主機的特殊字符 </p>

<p>17.3 假脫機打印 </p>

<p>我們在本章所開發(fā)的程序通過兩種方式發(fā)送PostScript程序給PostScript打印 
</p>

<p>機,單獨的方式或者通過BSD行式打印機假脫機系統(tǒng)。通常使用假脫機系統(tǒng),但提 
</p>

<p>供一個獨立的方式也是很有用的,如用于測試等。 </p>

<p>Unix SVR4同樣提供了一個假脫機打印系統(tǒng),在AT&amp;T手冊[1991] 
第一部分以l </p>

<p>p開頭的手冊頁中可以找到假脫機系統(tǒng)的詳細資料。Stevens[1990]的第13章詳細說 
</p>

<p>明了BSD和pre-SVR4的假脫機系統(tǒng)。我們在這一章中并不著重在假脫機系統(tǒng)上,而 
</p>

<p>在于與PostScript打印機的通信。 </p>

<p>在BSD的假脫機系統(tǒng)中,我們以如下形式打印一個文件 </p>

<p>lpr -pps main.c </p>

<p>這個命令發(fā)送文件main.c到名為ps的打印機。如果我們沒有指定-pps的選項, 
</p>

<p>那么或者輸出到PRINTER環(huán)境變量對應的打印機上,或者輸出到缺省的lp打印機上 
</p>

<p>。所用的打印機參數(shù)可以在/etc/printcap文件中查到。圖17.4是對應一個PostSc 
</p>

<p>ript打印機的一項。 </p>

<p>lp|ps:\ </p>

<p>:br#19200:lp=/dev/ttyb:\ </p>

<p>:sf:sh:rw:\ </p>

<p>:fc#0000374:fs#0000003:xc#0:xs#0040040:\ </p>

<p>:af=/var/adm/psacct:lf=/var/adm/pslog:sd=/var/spool/pslpd:\ </p>

<p>:if=/usr/local/lib/psif: </p>

<p>圖17.4 一個PostScript打印機對應的printcap項 </p>

<p>第一行給出了這個項的名稱,ps或者lp。br的值指定了波特率是19200。lp指 
</p>

<p>定了該打印機的特殊設備文件路徑名。sf是格式送紙,sh是指打印作業(yè)的開始加入 
</p>

<p>一個打印頁頭,rw是指定打印機以讀寫方式打開。如17.2節(jié)中所述,這一項是Pos 
</p>

<p>tScript打印機所必須的。 </p>

<p>下面的四個域指定了在舊版本BSD風格的stty結構中需要打開和關閉的位。( 
</p>

<p>我們在這里對此進行敘述是因為大多數(shù)使用printcap文件的BSD系統(tǒng)都支持這種老 
</p>

<p>式的設置終端方式的方法。在這一章的源程序文件中,我們可以看到如何使用第十 
</p>

<p>一章中所述的POSIX.1函數(shù)來設置所有的終端參數(shù)。)首先,fc掩碼清除sg_flags 
</p>

<p>元素中的下列值:EVENP和ODDP(關閉了奇偶校驗)、RAW(關閉raw模式)、CRMO 
</p>

<p>D(關閉了在輸入輸出中的CR/LF映射)、ECHO(關閉回顯)和LCASE(關閉輸入輸 
</p>

<p>出中的大小寫映射)。然后,fs掩碼打開了以下位: CBREAK(一次輸入一個字符 
</p>

<p>)和TANDEM(主機產生Control-S,Control-Q流控制)。接著,xc掩碼清除了本地 
</p>

<p>模式字中各位。最后,xs掩碼設置了本地模式字中的下列兩位:LDECCTQ(Contro 
</p>

<p>l-Q重新開始輸出,Control-S則停止輸出)和LLITOUT(壓縮輸出轉換)。 
</p>

<p>af和lf字符串分別指定了記帳文件和日志文件。sd指定了假脫機的目錄,而i 
</p>

<p>f指定了輸入過濾器。 </p>

<p>輸入過濾器可被所有的打印文件所激活,格式如下: </p>

<p>filter -n loginname -h hostname acctfile </p>

<p>這里還有幾個可選的參數(shù)(這些參數(shù)有可能被PostScript打印機所忽略)。要 
</p>

<p>打印的文件在標準輸入中,打印機(printcap文件中的lp項)設在標準輸出。標準 
</p>

<p>輸入也可以是一個管道。 </p>

<p>使用一個PostScript打印機,輸入過濾器首先查詢輸入文件的開始兩個字符, 
</p>

<p>確定這個文件是一個ASCII文本文件還是一個PostScript程序。通常的慣例是前兩 
</p>

<p>個字符為%!表示這是一個PostScript程序。如果這個文件是PostScript程序,lpr 
</p>

<p>ps程序(在下面會詳細討論)就把它發(fā)送到打印機。如果這個文件是文本文件,就 
</p>

<p>使用其他程序將它轉換成PostScript程序。 </p>

<p>在printcap文件中提到的psif過濾器是lprps軟件包提供的。在這個包中的te 
</p>

<p>xtps可以將文本文件轉換成PostScript程序。圖17.5概略表示了這些程序。 
</p>

<p>圖17.5 lprps系統(tǒng)示意圖 </p>

<p>圖中有一個程序psrev沒有表示出來,該程序將PostScript程序生成的頁面反 
</p>

<p>轉過來,當PostScript程序打印機在正面而不是在反面打印輸出時,就可以使用此 
</p>

<p>程序。 </p>

<p>概述以后,我們就來看一下lprps程序的設計和編碼。 </p>

<p>17.4 源程序 </p>

<p>我們先看main()調用的函數(shù),以及它們是如何與打印機交互作用的。圖17. 
</p>

<p>6詳細表明了這種相互作用。圖中第二列標注為&quot;int?&quot;,它指定該函數(shù)是否可以通 
</p>

<p>過接受SIGINT信號而中斷。第三欄指定了各個函數(shù)的超時設置(以秒為單位)。注 
</p>

<p>意,當我們發(fā)送用戶的PostScript程序到打印機時,沒有超時設置。這是因為一個 
</p>

<p>PostScript程序可能用任意長的時間來執(zhí)行。函數(shù)get_page行中的&quot;我們的PostSc 
</p>

<p>ript程序&quot;是指程序17.9,這個程序是用來記錄當前頁碼的。 </p>

<p>程序17.1列出了頭文件lprps.h。該文件包含在所有的源文件中。該頭文件包 
</p>

<p>含了各個源程序所需的系統(tǒng)頭文件,定義了全局變量和全局函數(shù)的原型。 
</p>

<p>圖17.6 被主程序調用的函數(shù) </p>

<p>_______________________________________________________________________ </p>

<p>________ </p>

<p>#include &lt;sys/types.h&gt; </p>

<p>#include &lt;sys/time.h&gt; </p>

<p>#include &lt;errno.h&gt; </p>

<p>#include &lt;signal.h&gt; </p>

<p>#include &lt;syslog.h&gt; /* since we're a daemon */ </p>

<p>#include &quot;ourhdr.h&quot; </p>

<p>#define EXIT_SUCCESS 0 /* defined by BSD spooling system */ </p>

<p>#define EXIT_REPRINT 1 </p>

<p>#define EXIT_THROW_AWAY 2 </p>

<p>#define DEF_DEVICE &quot;/dev/ttyb&quot; /* defaults for debug mode */ </p>

<p>#define DEF_BAUD B19200 </p>

<p>/* modify following as a </p>

<p>propriate */ </p>

<p>#define MAILCMD &quot;mail -s \&quot;printer job\&quot; %s@%s &lt; %s&quot; </p>

<p>#define OBSIZE 1024 /* output buffer */ </p>

<p>#define IBSIZE 1024 /* input buffer */ </p>

<p>#define MBSIZE 1024 /* message buffer */ </p>

<p>/* declare global variables */ </p>

<p>extern char *loginname; </p>

<p>extern char *hostname; </p>

<p>extern char *acct_file; </p>

<p>extern char eofc; /* PS end-of-file (004) */ </p>

<p>extern int debug; /* true if interactive (not a daemon) */ </p>

<p>extern int in_job; /* true if sending user's PS job to printer */ </p>

<p>extern int psfd; /* file descriptor for PostScript printer */ </p>

<p>extern int start_page;/* starting page# */ </p>

<p>#include &lt;syslog.h&gt; /* since we're a daemon */ </p>

<p>#include &quot;ourhdr.h&quot; </p>

<p>#define EXIT_SUCCESS 0 /* defined by BSD spooling system */ </p>

<p>#define EXIT_REPRINT 1 </p>

<p>#define EXIT_THROW_AWAY 2 </p>

<p>#define DEF_DEVICE &quot;/dev/ttyb&quot; /* defaults for debug mode */ </p>

<p>#define DEF_BAUD B19200 </p>

<p>/* modify following as a </p>

<p>propriate */ </p>

<p>#define MAILCMD &quot;mail -s \&quot;printer job\&quot; %s@%s &lt; %s&quot; </p>

<p>#define OBSIZE 1024 /* output buffer */ </p>

<p>#define IBSIZE 1024 /* input buffer */ </p>

<p>#define MBSIZE 1024 /* message buffer */ </p>

<p>/* declare global variables */ </p>

<p>extern char *loginname; </p>

<p>extern char *hostname; </p>

<p>extern char *acct_file; </p>

<p>extern char eofc; /* PS end-of-file (004) */ </p>

<p>extern int debug; /* true if interactive (not a daemon) */ </p>

<p>extern int in_job; /* true if sending user's PS job to printer */ </p>

<p>extern int psfd; /* file descriptor for PostScript printer */ </p>

<p>extern int start_page;/* starting page# */ </p>

<p>void msg_init(void); /* message.c */ </p>

<p>void msg_char(int); </p>

<p>void proc_msg(void); </p>

<p>void out_char(int); /* output.c */ </p>

<p>void get_page(int *); /* pagecount.c */ </p>

<p>void send_file(void); /* sendfile.c */ </p>

<p>void block_write(const char *, int); /* tty.c */ </p>

<p>void tty_flush(void); </p>

<p>void set_block(void); </p>

<p>void set_nonblock(void); </p>

<p>void tty_open(void); </p>

<p>_______________________________________________________________________ </p>

<p>________ </p>

<p>程序17.1 lprps.h頭文件 </p>

<p>文件vars.c(程序17.2)定義了全局變量。 </p>

<p>程序17.3是main函數(shù)。因為此程序一般是作為精靈進程運行的,所以main函數(shù)調用 
</p>

<p>log_open函數(shù)(見附錄B)。我們不能將錯誤消息寫到標準錯誤上-為此我們使用了 
</p>

<p>13.4.2小節(jié)中描述的syslog。 </p>

<p>_______________________________________________________________________ </p>

<p>________ </p>

<p>#include &quot;lprps.h&quot; </p>

<p>char *loginname; </p>

<p>char *hostname; </p>

<p>char *acct_file; </p>

<p>char eofc = '\004'; /* Control-D = PostScript EOF */ </p>

<p>int psfd = STDOUT_FILENO; </p>

<p>int start_page = -1; </p>

<p>int end_page = -1; </p>

<p>int debug; </p>

<p>int in_job; </p>

<p>volatile sig_atomic_t intr_flag; </p>

<p>volatile sig_atomic_t alrm_flag; </p>

<p>enum status status = INVALID; </p>

<p>_______________________________________________________________________ </p>

<p>________ </p>

<p>程序17.2 聲明全局變量 </p>

<p>_______________________________________________________________________ </p>

<p>________ </p>

<p>#include &quot;lprps.h&quot; </p>

<p>static void usage(void); </p>

<p>int </p>

<p>main(int argc, char *argv[]) </p>

<p>{ </p>

<p>int c; </p>

<p>log_open(&quot;lprps&quot;, LOG_PID, LOG_LPR); </p>

<p>opterr = 0; /* don't want getopt() writing to stderr */ </p>

<p>while ( (c = getopt(argc, argv, &quot;cdh:i:l:n:x:y:w:&quot;)) != EOF) { </p>

<p>switch (c) { </p>

<p>case 'c': /* control chars to be passed */ </p>

<p>case 'x': /* horizontal page size */ </p>

<p>case 'y': /* vertical page size */ </p>

<p>case 'w': /* width */ </p>

<p>case 'l': /* length */ </p>

<p>case 'i': /* indent */ </p>

<p>break; /* not interested in these */ </p>

<p>case 'd': /* debug (interactive) */ </p>

<p>debug = 1; </p>

<p>break; </p>

<p>case 'n': /* login name of user */ </p>

<p>loginname = optarg; </p>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美网站一区二区| 天堂精品中文字幕在线| 香蕉乱码成人久久天堂爱免费| 欧美色图片你懂的| 日韩电影在线一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 最近日韩中文字幕| 色香蕉成人二区免费| 亚洲精品免费在线观看| 欧美性受xxxx黑人xyx| 视频一区在线播放| 国产三级精品视频| 在线日韩av片| 免费日本视频一区| 亚洲福利一区二区| 精品国产免费一区二区三区香蕉| 狠狠色丁香九九婷婷综合五月| 中文字幕日本乱码精品影院| 欧美日韩国产首页| 成人午夜av影视| 天堂蜜桃一区二区三区| 中文字幕五月欧美| 26uuu国产在线精品一区二区| 97精品电影院| 韩国欧美国产1区| 麻豆精品一区二区三区| 自拍偷拍欧美激情| 91精品国产91久久综合桃花| 欧美伦理影视网| 国产精品久久久久影视| 欧美一区二区二区| **性色生活片久久毛片| 欧美久久久久久久久| 91一区二区在线| 欧美日韩国产免费| 亚洲午夜国产一区99re久久| 亚洲曰韩产成在线| 久久精品国产网站| 精品久久久久99| 黄色成人免费在线| 国产亚洲精品中文字幕| 国产69精品一区二区亚洲孕妇| 久久久午夜精品理论片中文字幕| 国产一区二区三区黄视频 | 国产色产综合色产在线视频| 久久精品国内一区二区三区| 精品国产伦一区二区三区免费 | 日本黄色一区二区| 亚洲精品v日韩精品| 欧美色网一区二区| 精品午夜久久福利影院| 久久久国产综合精品女国产盗摄| 福利一区二区在线| 亚洲精选一二三| 欧美日韩情趣电影| 国产一区二区免费视频| 日韩美女久久久| 678五月天丁香亚洲综合网| 国产综合色产在线精品| 国产欧美一区二区精品婷婷| 91视频在线观看| 日韩精品国产精品| 国产视频一区二区在线| 在线影视一区二区三区| 久久99精品久久久久久国产越南| 国产欧美一区二区精品秋霞影院| 色综合久久综合网欧美综合网| 日日摸夜夜添夜夜添精品视频 | 夜夜夜精品看看| 91精品国产黑色紧身裤美女| 国产一区在线观看视频| 亚洲蜜桃精久久久久久久| 日韩欧美一区二区免费| 懂色av一区二区夜夜嗨| 天堂成人国产精品一区| 国产精品福利影院| 欧美一区二区免费| 色综合天天综合色综合av| 激情深爱一区二区| 亚洲国产一二三| 中文久久乱码一区二区| 91精品国产乱| 91成人看片片| 国产成人免费视频精品含羞草妖精| 一区二区三区久久久| 久久精品人人做人人爽97| 91.com在线观看| 色综合久久六月婷婷中文字幕| 久久91精品国产91久久小草| 亚洲综合免费观看高清完整版| 久久久综合精品| 91精品国产综合久久久久久| 91麻豆自制传媒国产之光| 国产一区二区三区四区在线观看| 亚洲高清在线视频| 亚洲精品视频免费看| 欧美国产激情一区二区三区蜜月| 日韩女优毛片在线| 欧美丰满一区二区免费视频| 日本韩国欧美一区二区三区| 波波电影院一区二区三区| 精久久久久久久久久久| 日韩成人免费看| 婷婷综合久久一区二区三区| 樱花影视一区二区| 亚洲欧美日韩国产综合在线 | 2022国产精品视频| 日韩女优电影在线观看| 欧美一卡二卡在线| 欧美精三区欧美精三区| 欧美日韩一区中文字幕| 色婷婷av一区二区三区软件| 色婷婷精品大在线视频| 91麻豆精品在线观看| 色综合天天综合色综合av| 色吊一区二区三区| 一本色道久久综合亚洲精品按摩| 成人国产在线观看| 成人久久久精品乱码一区二区三区 | 一级中文字幕一区二区| 一区二区视频在线| 亚洲日本成人在线观看| 亚洲精品久久久蜜桃| 亚洲情趣在线观看| 有码一区二区三区| 亚洲国产欧美一区二区三区丁香婷| 亚洲精品中文在线| 午夜精品福利一区二区蜜股av| 视频一区在线视频| 国内精品久久久久影院一蜜桃| 久久成人免费日本黄色| 国产精品中文字幕一区二区三区| 国产精品夜夜嗨| 91网站最新网址| 欧美色偷偷大香| 日韩一区二区三区在线观看| 精品国产精品网麻豆系列| 26uuu成人网一区二区三区| 国产精品久久久久久久久快鸭 | 中文字幕亚洲视频| 一区二区久久久久| 日本va欧美va欧美va精品| 国内精品久久久久影院薰衣草 | 日韩亚洲国产中文字幕欧美| 精品国产乱码久久久久久夜甘婷婷| 久久久久久免费网| 亚洲人午夜精品天堂一二香蕉| 亚洲大片一区二区三区| 免费观看成人鲁鲁鲁鲁鲁视频| 国产成人在线免费| 色婷婷综合久久久中文字幕| 日韩视频不卡中文| 国产精品乱码久久久久久| 午夜精品久久久久久久久久 | 国产一区欧美日韩| 色婷婷综合久久久久中文一区二区| 日韩一级视频免费观看在线| 国产午夜精品在线观看| 午夜视频在线观看一区二区| 丁香婷婷综合网| 欧美日韩www| 中文字幕中文字幕一区二区| 婷婷综合另类小说色区| av激情成人网| 在线播放一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟 | 99国产精品99久久久久久| 欧美一区二区三区色| 国产精品国产三级国产有无不卡| 日韩av电影免费观看高清完整版 | 奇米色一区二区| 一本大道av一区二区在线播放| 日韩精品最新网址| 亚洲成人手机在线| 91啪九色porn原创视频在线观看| 久久综合视频网| 日韩专区一卡二卡| 色美美综合视频| 欧美极品少妇xxxxⅹ高跟鞋 | 91久久一区二区| 国产欧美一区二区在线观看| 美国十次综合导航| 制服丝袜激情欧洲亚洲| 亚洲国产综合在线| 日本伦理一区二区| 亚洲日穴在线视频| 成人av在线网| 国产女人18毛片水真多成人如厕| 久久精品国产一区二区三区免费看| 欧美日韩综合色| 亚洲一区精品在线| 欧美日韩亚洲综合在线 | 蜜臀99久久精品久久久久久软件| 欧美三级在线视频| 一区二区三区在线免费视频| 91免费视频大全| 一区二区三区产品免费精品久久75| 99久久婷婷国产综合精品| 欧美高清在线视频| 成人激情午夜影院|