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

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

?? 第十一章 文件系統.htm

?? perl5教程
?? HTM
?? 第 1 頁 / 共 3 頁
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80">
<title>Perl之文件系統</title>
<LINK rel="stylesheet" href="article.css" type="text/css">
</head>
<body>
<br>
<p align="center"><strong>第十一章&nbsp;&nbsp;文件系統</strong></p>

<p align="center"><a target="_blank" href="http://flamephoenix.126.com">by flamephoenix</a></p>

<a href="#1">一、文件輸入/輸出函數</a><br>
 &nbsp; <a href="#1.1">1、基本I/O函數</a><br>
 &nbsp;  &nbsp; <a href="#1.1.1">1)open函數</a><br>
 &nbsp;  &nbsp; <a href="#1.1.2">2)用open重定向輸入</a><br>
 &nbsp;  &nbsp; <a href="#1.1.3">3)文件重定向</a><br>
 &nbsp;  &nbsp; <a href="#1.1.4">4)指定讀寫權限</a><br>
 &nbsp;  &nbsp; <a href="#1.1.5">5)close函數</a><br>
 &nbsp;  &nbsp; <a href="#1.1.6">6)print, printf和write函數     </a><br>
 &nbsp;  &nbsp; <a href="#1.1.7">7)select函數</a><br>
 &nbsp;  &nbsp; <a href="#1.1.8">8)eof函數</a><br>
 &nbsp;  &nbsp; <a href="#1.1.9">9)間接文件變量</a><br>
 &nbsp; <a href="#1.2">2、跳過和重讀數據</a><br>
 &nbsp; <a href="#1.3">3、系統讀寫函數</a><br>
 &nbsp; <a href="#1.4">4、用getc讀取字符</a><br>
 &nbsp; <a href="#1.5">5、用binmode讀取二進制文件</a><br>
<a href="#2">二、目錄處理函數</a><br>
 &nbsp; <a href="#2.1">1、mkdir</a><br>
 &nbsp; <a href="#2.2">2、chdir</a><br>
 &nbsp; <a href="#2.3">3、opendir</a><br>
 &nbsp; <a href="#2.4">4、closedir</a><br>
 &nbsp; <a href="#2.5">5、readdir</a><br>
 &nbsp; <a href="#2.6">6、telldir</a><br>
 &nbsp; <a href="#2.7">7、seekdir</a><br>
 &nbsp; <a href="#2.8">8、rewinddir</a><br>
 &nbsp; <a href="#2.9">9、rmdir</a><br>
<a href="#3">三、文件屬性函數</a><br>
 &nbsp; <a href="#3.1">1、文件重定位函數</a><br>
 &nbsp; <a href="#3.2">2、鏈接和符號鏈接函數</a><br>
 &nbsp; <a href="#3.3">3、文件許可權函數</a><br>
 &nbsp; <a href="#3.4">4、其他屬性函數</a><br>
<a href="#4">四、使用DBM文件</a><br>

<br>
&nbsp;&nbsp;&nbsp;&nbsp;本章所講的函數多數使用了UNIX操作系統的特性,在非UNIX系統中,一些函數可能沒有定義或有不同的工作方式,使用時請查看Perl聯機文檔。<br>
<a name="1">一、文件輸入/輸出函數</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;本節講述從文件中讀取信息和向文件寫入信息的內置庫函數。<br>
<a name="1.1">1、基本I/O函數</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;一些I/O函數在前面的章節中已有講述,如<br>
<blockquote>
<li>open:允許程序訪問文件</li>
<li>close:終止文件訪問</li>
<li>print:文件寫入字符串</li>
<li>write:向文件寫入格式化信息</li>
<li>printf:格式化字符串并輸出到文件</li>
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;這里簡單回顧一下,再講一些前面未提到的函數。<br>
<a name="1.1.1">1)open函數</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;open函數將文件變量與某文件聯系起來,提供訪問文件的接口,例如:open(MYVAR, "/u/file"); 如果文件打開成功,則返回非零值,否則返回零。缺省地,open打開文件用以讀取其內容,若想打開文件以寫入內容,則在文件名前加個大于號:open(MYVAR, ">/u/file"); 向已有的文件末尾添加內容用兩個大于號:open(MYVAR, ">>/u/file"); 若想打開文件作為數據導向的命令,則在命令前加上管道符(|):open(MAIL, "|mail dave");<br>
<a name="1.1.2">2)用open重定向輸入</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;可以把打開的文件句柄用作向程序輸入數據的命令,方法是在命令后加管道符(|),如:<br>
&nbsp;&nbsp;&nbsp;&nbsp;open(CAT, "cat file*|");<br>
&nbsp;&nbsp;&nbsp;&nbsp;對open的調用運行命令cat file* ,此命令創建一個臨時文件,這個文件的內容是所有以file打頭的文件的內容連接而成,此文件看作輸入文件,可用文件變量CAT訪問,如:<br>
&nbsp;&nbsp;&nbsp;&nbsp;$input = <CAT>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;下面的例子使用命令w的輸出來列出當前登錄的所有用戶名。<br>
<blockquote>
1 : #!/usr/local/bin/perl<br>
2 :<br>
3 : open (WOUT, "w|");<br>
4 : $time = &lt;WOUT&gt;;<br>
5 : $time =~ s/^ *//;<br>
6 : $time =~ s/ .*//;<br>
7 : <WOUT>;   # skip headings line<br>
8 : @users = <WOUT>;<br>
9 : close (WOUT);<br>
10: foreach $user (@users) {<br>
11: &nbsp;   $user =~ s/ .*//;<br>
12: }<br>
13: print ("Current time:  $time");<br>
14: print ("Users logged on:\n");<br>
15: $prevuser = "";<br>
16: foreach $user (sort @users) {<br>
17: &nbsp;  if ($user ne $prevuser) {<br>
18: &nbsp; &nbsp;   print ("\t$user");<br>
19: &nbsp; &nbsp;   $prevuser = $user;<br>
20: &nbsp;  }<br>
21: }
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;結果輸出如下:<br>
<blockquote>
Current time: 4:25pm<br>
Users logged on:<br>
 &nbsp; dave<br>
 &nbsp; kilroy<br>
 &nbsp; root<br>
 &nbsp; zarquon
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;w命令列出當前時間、系統負載和登錄的用戶,以及每個用戶的作業時間和當前運行的命令,如:<br>
<blockquote><pre>
  4:25pm  up 1 day,  6:37,  6 users,  load average: 0.79, 0.36, 0.28
User     tty       login@  idle   JCPU   PCPU what
dave     ttyp0     2:26pm           27      3 w
kilroy   ttyp1     9:01am  2:27   1:04     11 -csh
kilroy   ttyp2     9:02am    43   1:46     27 rn
root     ttyp3     4:22pm     2               -csh
zarquon  ttyp4     1:26pm     4     43     16 cc myprog.c
kilroy   ttyp5     9:03am         2:14     48 /usr/games/hack
</pre></blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;上例中從w命令的輸出中取出所需的信息:當前時間和登錄的用戶名。第3行運行w命令,此處對open的調用指定w的輸出用作程序的輸入,用文件變量WOUT來訪問該輸入。第4行讀取第一行信息,即:<br>
&nbsp;&nbsp;&nbsp;&nbsp;4:25pm  up 1 day,  6:37,  6 users,  load average: 0.79, 0.36, 0.28<br>
&nbsp;&nbsp;&nbsp;&nbsp;接下來的兩行從這行中抽取出時間。首先,第5行刪除起始的空格,然后第6行刪去除時間和結尾換行符之間的所有字符,存入變量$time。<br>
&nbsp;&nbsp;&nbsp;&nbsp;第7行從WOUT讀取第二行,這行中無有用信息,故不作處理。第8行把剩下的行賦給數組@users,然后第9行關閉WOUT,終止運行w命令的進程。<br>
&nbsp;&nbsp;&nbsp;&nbsp;@users中的每個元素都是一行用戶信息,因為本程序只需要每行的第一個單詞,即用戶名,故10~12行去掉除換行符外的其它字符,這一循環結束后,@users中只剩下用戶名的列表。<br>
&nbsp;&nbsp;&nbsp;&nbsp;第13行輸出存貯在$time中的時間,注意這時print不需要加上換行符,因為$time中有。16~21行對@users中的用戶名排序并輸出。因為同一個用戶可以多次登錄,所以用$preuser存貯輸出的最后一個用戶名,下次輸出數組元素$user時,如果其與$preser相等,則不輸出。<br>
<a name="1.1.3">3)文件重定向</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;許多UNIX shell可以把標準輸出文件(STDOUT)和標準錯誤文件(STDERR)都重定向到同一個文件,例如在Bourne Shell(sh)中,命令<br>
&nbsp;&nbsp;&nbsp;&nbsp;$ foo &gt; file1 2&gt;&amp;1<br>
&nbsp;&nbsp;&nbsp;&nbsp;運行命令foo并把輸出到標準輸出文件和標準錯誤文件的內容存貯到文件file1中。下面是用Perl實現這一功能的例子:<br>
<blockquote>
1:  #!/usr/local/bin/perl<br>
2:  <br>
3:  open (STDOUT, "&gt;file1") || die ("open STDOUT failed");<br>
4:  open (STDERR, "&gt;&STDOUT") || die ("open STDERR failed");<br>
5:  print STDOUT ("line 1\n");<br>
6:  print STDERR ("line 2\n");<br>
7:  close (STDOUT);<br>
8:  close (STDERR);
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;運行后,文件file1中的內容為:<br>
&nbsp;&nbsp;&nbsp;&nbsp; line 2<br>
&nbsp;&nbsp;&nbsp;&nbsp; line 1<br>
&nbsp;&nbsp;&nbsp;&nbsp;可以看到,這兩行并未按我們想象的順序存貯,為什么呢?我們來分析一下這段程序。<br>
&nbsp;&nbsp;&nbsp;&nbsp;第3行重定向標準輸出文件,方法是打開文件file1將它與文件變量STDOUT關聯,這也關閉了標準輸出文件。第4行重定向標準錯誤文件,參數&gt;&amp;STDOUT告訴Perl解釋器使用已打開并與STDOUT關聯的文件,即文件變量STDERR指向與STDOUT相同的文件。第5、6行分別向STDOUT和STDERR寫入數據,因為這兩個文件變量指向同一個文件,故兩行字符串均寫到文件file1中,但順序卻是錯誤的,怎么回事呢?<br>
&nbsp;&nbsp;&nbsp;&nbsp;問題在于UNIX對輸出的處理上。當使用print(或其它函數)寫入STDOUT等文件時,UNIX操作系統真正所做的是把數據拷貝到一片特殊的內存即緩沖區中,接下來的輸出操作繼續寫入緩沖區直到寫滿,當緩沖區滿了,就把全部數據實際輸出。象這樣先寫入緩沖區再把整個緩沖區的內容輸出比每次都實際輸出所花費的時間要少得多,因為一般來說,I/O比內存操作慢得多。<br>
&nbsp;&nbsp;&nbsp;&nbsp;程序結束時,任何非空的緩沖區都被輸出,然而,系統為STDOUT和STDERR分別維護一片緩沖區,并且先輸出STDERR的內容,因此存貯在STDERR的緩沖區中的內容line 2出現在存貯在STDOUT的緩沖區中的內容line 1之前。<br>
&nbsp;&nbsp;&nbsp;&nbsp;為了解決這個問題,可以告訴Perl解釋器不對文件使用緩沖,方法為:<br>
&nbsp;&nbsp;&nbsp;&nbsp; 1、用select函數選擇文件<br>
&nbsp;&nbsp;&nbsp;&nbsp; 2、把值1賦給系統變量$|<br>
&nbsp;&nbsp;&nbsp;&nbsp;系統變量$|指定文件是否進行緩沖而不管其是否應該使用緩沖。如果$|為非零值則不使用緩沖。$|與系統變量$~和$^協同工作,當未調用select函數時,$|影響當前缺省文件。下例保證了輸出的次序:<br>
<blockquote>
1 :  #!/usr/local/bin/perl<br>
2 :  <br>
3 :  open (STDOUT, "&gt;file1") || die ("open STDOUT failed");<br>
4 :  open (STDERR, "&gt;&amp;STDOUT") || die ("open STDERR failed");<br>
5 :  $| = 1;<br>
6 :  select (STDERR);<br>
7 :  $| = 1;<br>
8 :  print STDOUT ("line 1\n");<br>
9 :  print STDERR ("line 2\n");<br>
10: close (STDOUT);<br>
11: close (STDERR);
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;程序運行后,文件file1中內容為:<br>
&nbsp;&nbsp;&nbsp;&nbsp; line 1<br>
&nbsp;&nbsp;&nbsp;&nbsp; line 2<br>
&nbsp;&nbsp;&nbsp;&nbsp;第5行將$|賦成1,告訴Perl解釋器當前缺省文件不進行緩沖,因為未調用select,當前的缺省文件為重定向到文件file1的STDOUT。第6行將當前缺省文件設為STDERR,第7行又設置$|為1,關掉了重定向到file1的標準錯誤文件的緩沖。由于STDOUT和STDERR的緩沖均被關掉,向其的輸出立刻被寫到文件中,因此line 1出現在第一行。<br>
<a name="1.1.4">4)指定讀寫權限</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;打開一個既可讀又可寫的文件方法是在文件名前加上"+&gt;",如下:<br>
&nbsp;&nbsp;&nbsp;&nbsp; open (READWRITE, "+>file1");<br>
&nbsp;&nbsp;&nbsp;&nbsp;此語句打開既可讀又可寫的文件file1,即可以重寫其中的內容。文件讀寫操作最好與庫函數seek和tell一起使用,這樣可以跳到文件任何一點。<br>
&nbsp;&nbsp;&nbsp;&nbsp;注:也可用前綴"+<"指定可讀寫權限。<br>
<a name="1.1.5">5)close函數</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;用于關閉打開的文件。當用close關閉管道,即重定向的命令時,程序等待重定向的命令結束,如:<br>
&nbsp;&nbsp;&nbsp;&nbsp; open (MYPIPE, "cat file*|");<br>
&nbsp;&nbsp;&nbsp;&nbsp; close (MYPIPE);<br>
&nbsp;&nbsp;&nbsp;&nbsp;當關閉此文件變量時,程序暫停運行,直到命令cat file*運行完畢。<br>
<a name="1.1.6">6)print, printf和write函數</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;print是這三個函數中最簡單的,它向指定的文件輸出,如果未指定,則輸出到當前缺省文件中,如:<br>
&nbsp;&nbsp;&nbsp;&nbsp; print ("Hello, there!\n");<br>
&nbsp;&nbsp;&nbsp;&nbsp; print OUTFILE ("Hello, there!\n");<br>
&nbsp;&nbsp;&nbsp;&nbsp;第一句輸出到當前缺省文件中,若未調用select,則為STDOUT。第二句輸出到由文件變量OUTFILE指定的文件中。<br>
&nbsp;&nbsp;&nbsp;&nbsp;printf函數先格式化字符串再輸出到指定文件或當前缺省文件中,如:<br>
&nbsp;&nbsp;&nbsp;&nbsp; printf OUTFILE (“You owe me %8.2f", $owing);<br>
&nbsp;&nbsp;&nbsp;&nbsp;此語句取出變量$owing的值并替換掉串中的%8.2f,%8.2f是域格式的例子,把$owing的值看作浮點數。<br>
&nbsp;&nbsp;&nbsp;&nbsp;write函數使用輸出格式把信息輸出到文件中,如:<br>
&nbsp;&nbsp;&nbsp;&nbsp; select (OUTFILE);<br>
&nbsp;&nbsp;&nbsp;&nbsp; $~ = "MYFORMAT";<br>
&nbsp;&nbsp;&nbsp;&nbsp; write;<br>
&nbsp;&nbsp;&nbsp;&nbsp;關于printf和write,詳見《第x章 格式化輸出》。<br>
<a name="1.1.7">7)select函數</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;select函數將通過參數傳遞的文件變量指定為新的當前缺省文件,如:<br>
&nbsp;&nbsp;&nbsp;&nbsp; select (MYFILE);<br>
&nbsp;&nbsp;&nbsp;&nbsp;這樣,MYFILE就成了當前缺省文件,當對print、write和printf的調用未指定文件時,就輸出到MYFILE中。<br>
<a name="1.1.8">8)eof函數</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;eof函數查看最后一次讀文件操作是否為文件最后一個記錄,如果是,則返回非零值,如果文件還有內容,返回零。<br>
&nbsp;&nbsp;&nbsp;&nbsp;一般情況下,對eof的調用不加括號,因為eof和eof()是等效的,但與&lt;&gt;操作符一起使用時,eof和eof()就不同了。現在我們來創建兩個文件,分別叫做file1和file2。file1的內容為:<br>
&nbsp;&nbsp;&nbsp;&nbsp; This is a line from the first file.<br>
&nbsp;&nbsp;&nbsp;&nbsp; Here is the last line of the first file.<br>
&nbsp;&nbsp;&nbsp;&nbsp;file2的內容為:<br>
&nbsp;&nbsp;&nbsp;&nbsp; This is a line from the second and last file.<br>
&nbsp;&nbsp;&nbsp;&nbsp; Here is the last line of the last file.<br>
&nbsp;&nbsp;&nbsp;&nbsp;下面就來看一下eof和eof()的區別,第一個程序為:<br>
<blockquote>
1:  #!/usr/local/bin/perl<br>
2:  <br>
3:  while ($line = &lt;&gt;) {<br>
4: &nbsp;   print ($line);<br>
5: &nbsp;   if (eof) {<br>
6: &nbsp; &nbsp;    print ("-- end of current file --\n");<br>
7: &nbsp;   }<br>
8:  }
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;運行結果如下:<br>
<blockquote>
$ program file1 file2<br>
This is a line from the first file.<br>
Here is the last line of the first file.<br>
-- end of current file --<br>
This is a line from the second and last file.<br>
Here is the last line of the last file.<br>
-- end of current file --<br>
$
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;下面把eof改為eof(),第二個程序為:<br>
<blockquote>
1:  #!/usr/local/bin/perl<br>
2:  <br>
3:  while ($line = &lt;&gt;) {<br>
4:  &nbsp;  print ($line);<br>
5:  &nbsp;  if (eof()) {<br>
6:  &nbsp; &nbsp;   print ("-- end of output --\n");<br>
7:  &nbsp;  }<br>
8:  }
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;運行結果如下:<br>
<blockquote>
$ program file1 file2<br>
This is a line from the first file.<br>
Here is the last line of the first file.<br>
This is a line from the second and last file.<br>
Here is the last line of the last file.<br>
-- end of output --$
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;這時,只有所有文件都讀過了,eof()才返回真,如果只是多個文件中前幾個的末尾,返回值為假,因為還有要讀取的輸入。<br>
<a name="1.1.9">9)間接文件變量</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;對于上述各函數open, close, print, printf, write, select和eof,都可以用簡單變量來代替文件變量,這時,簡單變量中所存貯的字符串就被看作文件變量名,下面就是這樣一個例子,此例很簡單,就不解釋了。需要指出的是,函數open, close, write, select和eof還允許用表達式來替代文件變量,表達式的值必須是字符串,被用作文件變量名。<br>
<blockquote>
1:  #!/usr/local/bin/perl<br>
2:  <br>
3:  &amp;open_file("INFILE", "", "file1");<br>
4:  &amp;open_file("OUTFILE", "&gt;", "file2");<br>
5:  while ($line = &amp;read_from_file("INFILE")) {<br>
6:  &nbsp;  &amp;print_to_file("OUTFILE", $line);<br>
7:  }<br>
8:  <br>
9:  sub open_file {<br>
10: &nbsp;  local ($filevar, $filemode, $filename) = @_;<br>
11: <br>
12: &nbsp;  open ($filevar, $filemode . $filename) ||<br>
13: &nbsp; &nbsp;   die ("Can't open $filename");<br>
14: }<br>
15: sub read_from_file {<br>
16: &nbsp;  local ($filevar) = @_;<br>
17: <br>
18: &nbsp;  &lt;$filevar&gt;;<br>
19: }<br>
20: sub print_to_file {<br>
21: &nbsp;  local ($filevar, $line) = @_;<br>
22: <br>
23: &nbsp;  print $filevar ($line);<br>
24: }
</blockquote>
<a name="1.2">2、跳過和重讀數據</a><br>
<p><table border="1" cellspacing="1">
    <tr>
        <td>函數名</td>
        <td>seek</td>
    </tr>
    <tr>
        <td>調用語法</td>
        <td>seek (filevar, distance, relative_to);</td>
    </tr>
    <tr>
        <td>解說</td>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美国十次综合导航| 欧美福利视频导航| 欧美日韩精品免费观看视频| 日韩欧美一二三区| 亚洲女厕所小便bbb| 国产一区二区导航在线播放| 欧美无人高清视频在线观看| 久久久久99精品一区| 日韩电影在线一区二区| 91欧美激情一区二区三区成人| 日韩三级电影网址| 夜夜亚洲天天久久| 不卡一二三区首页| 久久伊人蜜桃av一区二区| 日本不卡一二三区黄网| 色综合久久综合| 国产精品久久久久久久岛一牛影视 | 国产一区在线观看视频| 欧美性色综合网| 亚洲精品国产一区二区精华液 | 欧美挠脚心视频网站| 国产精品二区一区二区aⅴ污介绍| 美女一区二区在线观看| 777色狠狠一区二区三区| 亚洲一区二区三区四区五区中文 | 欧美群妇大交群中文字幕| 国产精品电影一区二区三区| 国产麻豆精品在线观看| 久久综合九色综合欧美就去吻| 午夜视频在线观看一区| 欧美麻豆精品久久久久久| 亚洲国产aⅴ成人精品无吗| 色乱码一区二区三区88| 一区二区三区91| 欧美日韩三级一区二区| 午夜精品久久久久影视| 欧美精品乱人伦久久久久久| 天天免费综合色| 日韩欧美国产综合一区 | 欧美成人三级在线| 蜜桃视频在线一区| 欧美精品一区二区蜜臀亚洲| 国产麻豆一精品一av一免费 | 精品国产髙清在线看国产毛片| 免费不卡在线视频| 久久久综合激的五月天| 成人激情小说乱人伦| 亚洲欧美另类小说视频| 欧美日韩精品系列| 麻豆视频一区二区| 国产欧美精品一区aⅴ影院| caoporm超碰国产精品| 亚洲电影在线播放| 日韩免费视频线观看| 国产精品1024| 亚洲综合免费观看高清完整版在线| 欧美在线观看视频一区二区| 日本v片在线高清不卡在线观看| 精品国产乱码久久久久久老虎| 国产98色在线|日韩| 亚洲欧美日韩综合aⅴ视频| 欧美精品自拍偷拍| 丁香婷婷综合网| 亚洲国产美女搞黄色| 精品国产乱码久久| 欧美亚洲综合久久| 韩国理伦片一区二区三区在线播放| 国产精品欧美经典| 日韩欧美色综合网站| bt欧美亚洲午夜电影天堂| 午夜一区二区三区视频| 国产三级三级三级精品8ⅰ区| 在线视频你懂得一区| 国内不卡的二区三区中文字幕 | 欧美午夜理伦三级在线观看| 久久不见久久见免费视频7| 亚洲特级片在线| 精品国产青草久久久久福利| 日本高清不卡视频| 国产不卡视频在线播放| 午夜精品一区二区三区三上悠亚| 国产婷婷精品av在线| 91精品久久久久久久91蜜桃 | 一区二区三区在线影院| 精品粉嫩aⅴ一区二区三区四区| 欧美最猛性xxxxx直播| 国产精品系列在线播放| 喷白浆一区二区| 亚洲韩国精品一区| 国产精品久久久久9999吃药| 精品裸体舞一区二区三区| 在线观看欧美日本| 91免费视频观看| 成人一区二区在线观看| 韩国毛片一区二区三区| 日本女人一区二区三区| 亚洲国产美女搞黄色| 亚洲日本护士毛茸茸| 国产色产综合产在线视频| 久久在线观看免费| 精品国产伦一区二区三区观看方式| 欧美丰满少妇xxxxx高潮对白| 色综合天天综合色综合av| 懂色一区二区三区免费观看| 国产一区二区影院| 麻豆视频观看网址久久| 久久99精品国产麻豆婷婷| 日本不卡的三区四区五区| 日本欧美在线观看| 欧美aaaaaa午夜精品| 日本午夜精品视频在线观看| 青青草91视频| 蜜臀av一区二区在线观看| 美女免费视频一区| 久久99久久精品欧美| 韩国成人在线视频| 夫妻av一区二区| 国产69精品久久777的优势| 成人晚上爱看视频| 成人免费高清在线| 99精品视频一区| 在线亚洲精品福利网址导航| 欧洲激情一区二区| 欧美一区二区三区喷汁尤物| 日韩一区二区在线观看视频播放| 欧美一级一区二区| 久久综合九色综合欧美98| 久久久美女毛片| 国产精品久久久一区麻豆最新章节| 亚洲色图.com| 偷拍亚洲欧洲综合| 蜜桃久久久久久久| 国产精品自拍三区| 成人午夜av在线| 91电影在线观看| 日韩一区二区中文字幕| 国产亚洲综合av| 一区二区三区 在线观看视频| 婷婷开心久久网| 激情综合网av| 色综合婷婷久久| 日韩欧美国产一二三区| 中文成人av在线| 亚洲成av人综合在线观看| 久久99精品视频| 色综合天天综合给合国产| 337p亚洲精品色噜噜狠狠| 久久精品视频一区二区三区| 亚洲视频在线一区观看| 日韩av一区二区三区四区| 成人福利视频网站| 欧美精品第一页| 欧美激情在线一区二区| 五月天中文字幕一区二区| 成人在线综合网站| 欧美日韩精品一区二区在线播放| 久久久久国产精品麻豆ai换脸| 亚洲午夜av在线| 97久久超碰精品国产| 精品三级av在线| 亚洲一区二区精品久久av| 国产精品乡下勾搭老头1| 在线成人高清不卡| 亚洲日本在线a| 国产成a人无v码亚洲福利| 91精品国产综合久久久蜜臀粉嫩 | 久久亚洲免费视频| 亚洲一区二区三区小说| 国产精品一级黄| 欧美精品亚洲二区| 亚洲激情图片小说视频| 国产盗摄一区二区三区| 欧美一区二区三区在线| 一区二区三区高清| 成人av网站在线观看免费| 精品久久久久99| 日韩精品91亚洲二区在线观看| 91丝袜国产在线播放| 国产视频一区二区三区在线观看 | 亚洲午夜视频在线观看| 成人性色生活片| 久久久久久久久久久久久女国产乱| 亚洲v中文字幕| 91九色最新地址| 亚洲欧洲美洲综合色网| 高清beeg欧美| 欧美高清在线精品一区| 国产乱色国产精品免费视频| 精品成人在线观看| 麻豆成人免费电影| 欧美一级黄色大片| 日日夜夜免费精品视频| 777午夜精品免费视频| 午夜电影一区二区| 欧美军同video69gay| 天堂va蜜桃一区二区三区漫画版| 欧美色网一区二区| 亚欧色一区w666天堂| 精品视频一区三区九区| 午夜精品免费在线|