Linux操作系統(tǒng)實(shí)訓(xùn)unit6課案_第1頁(yè)
Linux操作系統(tǒng)實(shí)訓(xùn)unit6課案_第2頁(yè)
Linux操作系統(tǒng)實(shí)訓(xùn)unit6課案_第3頁(yè)
Linux操作系統(tǒng)實(shí)訓(xùn)unit6課案_第4頁(yè)
Linux操作系統(tǒng)實(shí)訓(xùn)unit6課案_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、unit6實(shí)習(xí)報(bào)告:linux下并發(fā)程序設(shè)計(jì)1、完成操作系統(tǒng)原理實(shí)驗(yàn)教材中“3.4管理linux系統(tǒng)進(jìn)程”實(shí)驗(yàn)內(nèi)容(p70-77)步驟1 :登錄進(jìn)入gnome。在linux登錄框中填寫指導(dǎo)老師分配的用戶名和口令,登錄 linux系統(tǒng)。步驟2 :訪問命令行。單擊紅帽子,在“ gnome幫助”菜單中單擊“系統(tǒng)工具”-“終端”命令,打開“終端”窗口。步驟3:回顧系統(tǒng)進(jìn)程概念。每個(gè)運(yùn)行的程序都會(huì)創(chuàng)建一個(gè)進(jìn)程,進(jìn)程分配到一個(gè)唯一的進(jìn)程標(biāo)識(shí)符(pid)。pid被系統(tǒng)用于標(biāo)識(shí)和跟蹤進(jìn)程,直到進(jìn)程結(jié)束。操作系統(tǒng)內(nèi)核管理所有進(jìn)程的初始化和終止。每一個(gè)進(jìn)程都要求系統(tǒng)資源(例如cpu時(shí)間和ram空間)在其中工作。當(dāng)

2、進(jìn)程啟動(dòng)的時(shí)候,操作系統(tǒng)把系統(tǒng)資源分配給每個(gè)進(jìn)程,當(dāng)進(jìn)程終止的時(shí)候,系統(tǒng)回收這些資源。在linux系統(tǒng)啟動(dòng)的時(shí)候,首先啟動(dòng)的兩個(gè)進(jìn)程是 sched (調(diào)度)和init (初始化),它們管理著其他進(jìn)程。 linux系統(tǒng)中有幾種不同類型的進(jìn)程:守護(hù)進(jìn)程:由linux內(nèi)核啟動(dòng)的進(jìn)程,為了特定目的而存在。例如, lpsched守護(hù)進(jìn)程存 在只是為了處理打印作業(yè)。父進(jìn)程:派生其他進(jìn)程的進(jìn)程是父進(jìn)程。一個(gè)叫做init的守護(hù)進(jìn)程是第一個(gè)調(diào)用的進(jìn)程。 每一個(gè)進(jìn)程,除了 init之外,都有一個(gè)父進(jìn)程。子進(jìn)程:由其他進(jìn)程派生出來的進(jìn)程叫做子進(jìn)程。孤兒進(jìn)程:在進(jìn)程返回輸出之前,它的父進(jìn)程結(jié)束了,這樣的進(jìn)程叫做孤兒進(jìn)

3、程。僵進(jìn)程:子進(jìn)程沒有帶著輸出返回給父進(jìn)程。這樣的進(jìn)程在系統(tǒng)中變成丟失的進(jìn)程。使用此前的信息,完成以下填空:1) linux系統(tǒng)中,幾乎每一個(gè)啟動(dòng)的進(jìn)程,都會(huì)由內(nèi)核分配一個(gè)唯一的pid進(jìn)程標(biāo)識(shí)符.用于跟蹤從進(jìn)程啟動(dòng)到進(jìn)程結(jié)束。2)當(dāng)啟動(dòng)新進(jìn)程的時(shí)候,內(nèi)核也給它們分配系統(tǒng)資源,如 sched和init 。3)永遠(yuǎn)不向父進(jìn)程返回輸出的進(jìn)程叫做_僵講程。4)由父進(jìn)程派生出來的進(jìn)程叫做子 進(jìn)程。5) r 進(jìn)程是一個(gè)派生另一個(gè)進(jìn)程的進(jìn)程。6)運(yùn)行用于提供服務(wù)的 linux系統(tǒng)進(jìn)程是 守護(hù)進(jìn)程。7)如果父進(jìn)程在子進(jìn)程之前結(jié)束,它創(chuàng)建了一個(gè)孤兒進(jìn)程。步驟4:回顧ps命令和信息。ps命令用于列出當(dāng)前系統(tǒng)中運(yùn)行

4、的進(jìn)程。如果一個(gè)進(jìn)程耗時(shí)太長(zhǎng),或者看上去好像已經(jīng)終止了,表現(xiàn)為一個(gè)終端窗口不再響應(yīng)或掛起,通常需要使用 ps查看系統(tǒng)中的進(jìn)程。通過列出進(jìn)程,可以查看初始化進(jìn)程的命令或 程序的名字,以及所有它派生出來的子進(jìn)程。通過多次執(zhí)行ps命令,查看進(jìn)程的時(shí)間一一進(jìn)程占用的 cpu時(shí)間,可以檢查一個(gè)進(jìn)程是否還在運(yùn)行。如果時(shí)間小再增長(zhǎng),那么進(jìn)程可 能已經(jīng)終止了。如果進(jìn)程占用太長(zhǎng)的時(shí)間或者已經(jīng)停止,可以使用ps命令檢查進(jìn)程的進(jìn)程id (pid),然后殺死進(jìn)程。ps命令的輸出將顯示 pid號(hào)和與其相關(guān)的命令或程序。pid號(hào)通常用于終止一個(gè)進(jìn)程。ps命令(ps -options)的3個(gè)主要選項(xiàng)如下表所示。表3-5 p

5、s 命令選項(xiàng)ps選項(xiàng)意義功能ps無選項(xiàng)顯示當(dāng)前shell或終端窗口中,當(dāng)前用戶的進(jìn)程信息ps e每一個(gè)顯示系統(tǒng)中每一個(gè)進(jìn)程的信息ps f完全產(chǎn)生一個(gè)完全列表,給出每個(gè)進(jìn)程的所有可用信息ps -u userid用戶顯示特定用戶的所有進(jìn)程基本的ps命令顯示在當(dāng)前shell中的進(jìn)程信息,用戶只能夠查看在這個(gè)終端窗口中初始 化的進(jìn)程。輸入ps命令,將結(jié)果填入表3-6中。表3-6實(shí)驗(yàn)記錄pidttytimecmd3840pts/000:00:00bash3864pts/000:00:00ps從當(dāng)前終端窗口中,練習(xí)使用給出的每個(gè)選項(xiàng)的ps命令。輸入ps -f命令,顯示運(yùn)行在系統(tǒng)中的某個(gè)進(jìn)程的完全信息,填入

6、表 3-7中。表3-7實(shí)驗(yàn)記錄uidpidppidcstimettytimecmdroot38403838011:46pts/000:00:00bashroot38653840011:48pts/000:00:00ps -fps -f命令輸出的各欄標(biāo)題見表3-8所不。表3-8 ps -f 欄標(biāo)題值描述uid初始化進(jìn)程的用戶idpid進(jìn)程的進(jìn)程標(biāo)識(shí)號(hào)。pid可以用來殺死進(jìn)程ppid進(jìn)程的父進(jìn)程標(biāo)識(shí)號(hào)c進(jìn)程的優(yōu)先級(jí)stime進(jìn)程的啟動(dòng)時(shí)間tty控制進(jìn)程終端的終端舉型time進(jìn)程使用的cpu時(shí)間的數(shù)量cmd命令名守護(hù)進(jìn)程(執(zhí)行的程序的名字)步驟5:列出系統(tǒng)中運(yùn)行的所有進(jìn)程。輸入ps -ef命令,顯示

7、運(yùn)行在系統(tǒng)中的各個(gè)進(jìn)程的完全信息。執(zhí)行該命令,并與 ps f 命令的輸出結(jié)果對(duì)照,一致嗎?有何不同?_不一致_,出現(xiàn)整個(gè)列表注意分析當(dāng)前終端窗口中的輸出結(jié)果:a.顯示了多少個(gè)進(jìn)程?_61_b.進(jìn)程id的pid是什么?講程的講禾標(biāo)識(shí)號(hào)c.啟動(dòng)進(jìn)程的命令 (cmd)是什么?命令多守護(hù)講程d.請(qǐng)觀察,什么命令的 pid號(hào)是1?init e.再次運(yùn)行ps pf命令,計(jì)算進(jìn)程的數(shù)目: 61然后執(zhí)行下列命令把輸出結(jié)果輸入到wc命令中:ps -ef | wc -l 第一個(gè)數(shù)字顯示的是行的數(shù)目,也是進(jìn)程的數(shù)目:61執(zhí)行man ps命令,可以打開 linux用戶命令手冊(cè),了解 ps命令的用法,輸入 wq命令 可

8、退出用戶手冊(cè)的閱讀。man命令可以執(zhí)行嗎?結(jié)果如何?可執(zhí)行步驟6:根據(jù)命令名搜索特定的進(jìn)程。為了終止一個(gè)進(jìn)程,必須找到該進(jìn)程的pid。大多數(shù)運(yùn)行的系統(tǒng)中,有上百個(gè)進(jìn)程在運(yùn)行,ps -ef的列表可能很長(zhǎng)。如果知道啟動(dòng)進(jìn)程的執(zhí)行程序的名字,可以更快地找到pid。通過把ps命令的輸出結(jié)果輸入到 grep中,可以搜索想要終止的特定進(jìn)程,確定正確的pid。grep命令可以在其他命令的輸出中搜索所有類型的特征字符串。-l (長(zhǎng)的車出)選項(xiàng)將顯示和找到的pid相關(guān)的進(jìn)程的名字;-e選項(xiàng)顯示pid和初始化命令的名字。a.單擊紅帽子,在“ gnome幫助”菜單中單擊“游戲”-“堆麻將”命令,打開“堆麻將”游戲。

9、b.在當(dāng)前的終端窗口中,執(zhí)行命令: ps -e | grep mahjongg(“堆麻將”游戲的進(jìn)程名是“ mahjongg”),查找和“堆麻將”游戲調(diào)度守護(hù)進(jìn)程相關(guān)的 所有進(jìn)程。c.顯示了多少個(gè)相關(guān)進(jìn)程?2d.顯示進(jìn)程中最小的進(jìn)程 id號(hào)是多少?_3904c.在當(dāng)前終端窗口中執(zhí)行命令: pgrep -l mahjongg查找所有和“堆麻將”游戲調(diào)度守護(hù)進(jìn)程相關(guān)的進(jìn)程。ps和pgrep命令輸出之間有什么不同?沒有進(jìn)程id步驟7:確定一個(gè)要終止的進(jìn)程。當(dāng)試圖終止一個(gè)程序, 或者釋放一個(gè)掛起的終端窗口的時(shí)候,殺死和不響應(yīng)的應(yīng)用相關(guān)的pid可能還是不夠的, 一般需要?dú)⑺滥莻€(gè)進(jìn)程的父進(jìn)程,在少數(shù)情況下

10、,甚至要?dú)⑺栏高M(jìn)程的父進(jìn)程。為了沿著層次結(jié)構(gòu),從子進(jìn)程追溯到派生它們的父進(jìn)程,必須能夠查找 pid和ppid必須首先確定最低級(jí)不響應(yīng)進(jìn)程的pid。通常,可以試著去殺死那個(gè)進(jìn)程。如果這樣做不能夠停止那個(gè)進(jìn)程,可能需要?dú)⑺浪母高M(jìn)程。殺死父進(jìn)程將殺死所有它派生的子進(jìn)程。 殺死一個(gè)父進(jìn)程也比殺死幾個(gè)子進(jìn)程快得多。1)在gnome當(dāng)前終端窗口中,輸入 ps命令。有多少進(jìn)程正在運(yùn)行?為什么只有這么少的進(jìn)程?_2.可被殺死2)正而!行的進(jìn)程的名字是什么?它表示什么?_bash. ps_3)這個(gè)進(jìn)程的pid是多少?3872,3909_4)在bash shell中輸入命令csh,打開一個(gè)c shell會(huì)話,當(dāng)

11、前系統(tǒng)的會(huì)話提示符是什么? 5)輸入ps -f命令,顯示在當(dāng)前 shell中運(yùn)行的進(jìn)程的所有信息?,F(xiàn)在什么進(jìn)程正在運(yùn) 行?bash, -sh, ps -f6) bash 的 pid 是-sh (csh)的 ppid嗎?是7)輸入命令sleep 1000&,創(chuàng)建一個(gè)進(jìn)程,把執(zhí)行掛起1000秒(大約15分鐘)。&表示在后臺(tái)運(yùn)行命令,返回 shell提示符,這樣您可以繼續(xù)工作。8)再次輸入ps -f命令。-sh (csh)的pid是sleep命令的ppid嗎?哪個(gè) pid是csh (c shell) 的子進(jìn)程?是,3931和39329)輸入命令 kill -9 <csh的pid

12、>退出c shell。然后再次鍵入 ps -f命令。什么pid是sleep 父命令的ppid1sleep進(jìn)程現(xiàn)在是什么類型的進(jìn)程?孤兒步驟8 :使用kill命令終止一個(gè)進(jìn)程。信號(hào)用于終止、掛起和繼續(xù)進(jìn)程。有時(shí)候使用ctrl + c可以終止一個(gè)不響應(yīng)的進(jìn)程。這樣向進(jìn)程發(fā)送一個(gè)中斷(int)信號(hào),終止它及所有它派生的子進(jìn)程。kill命令提供了一個(gè)終止不想要的命令進(jìn)程的直接方法。當(dāng)想停止一個(gè)運(yùn)行了很長(zhǎng)時(shí)間 的命令的時(shí)候,或者當(dāng)需要終止一個(gè)不能夠正常退出的進(jìn)程的時(shí)候,它很有用。指定 pid正 常地殺死一個(gè)進(jìn)程。kill -signal process -id為了使用kill命令終止一個(gè)進(jìn)程,應(yīng)該

13、首先鍵入ps找出進(jìn)程的pid,然后鍵入kill緊跟著pid。如果使用kill而沒有指定信號(hào),則信號(hào)15 (sigterm)將被發(fā)送給特定 pid號(hào)的進(jìn)程。 這叫做軟殺死,通常終止了進(jìn)程。如果可能,最好軟殺死進(jìn)程,這樣它可以正確地關(guān)閉文件, 溫和地終止進(jìn)程。如果需要強(qiáng)制終止一個(gè)進(jìn)程,可以使用帶-9選項(xiàng)的kill命令。這個(gè)選項(xiàng)叫做強(qiáng)制殺死,當(dāng)shell對(duì)所有其他終止信號(hào)都不響應(yīng)的時(shí)候,需要使用它來殺死shellokill -9 process -id注意:對(duì)于shell之外的進(jìn)程,把kill -9 (sigkill)作為最后的選項(xiàng),因?yàn)樗且环N生硬 的方法,不允許正確的進(jìn)程終止。a.輸入命令ps

14、f ,顯示在當(dāng)前shell中運(yùn)行的進(jìn)程的完整信息?,F(xiàn)在什么進(jìn)程正在運(yùn) 行?一bash, sleep 1000.ps -fb.因?yàn)閟leep進(jìn)程現(xiàn)在是一個(gè)孤兒進(jìn)程,已經(jīng)被 init進(jìn)程(pid #l)收養(yǎng),輸入命令,對(duì) sleep的pid執(zhí)行軟殺死。如果sleep已經(jīng)終止(超過15分鐘),則重復(fù)步驟7中的8)、9)操 作,然后軟殺死sleep程序。再次輸入 ps -f命令?,F(xiàn)在什么進(jìn)程正在運(yùn)行?_bash,ps f步驟9:按照用戶查找和終止一個(gè)進(jìn)程。ps命令可以帶-u (用戶)選項(xiàng)使用,查找指定用戶白進(jìn)程。這個(gè)命令比ps-ef使用得更多,因?yàn)橐话阒荒軌蚬芾韺儆谧约旱倪M(jìn)程。我們可以通過用戶登錄名或

15、者 uid號(hào)來查找用戶的進(jìn)程。用戶只能夠終止自己的進(jìn)程,但是超級(jí)用戶可以終止系統(tǒng)中所有運(yùn)行的進(jìn)程。ps -u login-id 或 uid1)啟動(dòng)計(jì)算器和“堆麻將”游戲 gnome應(yīng)用程序。2)使用帶-u選項(xiàng)的ps命令,查找以登錄id (例如,userx)或者數(shù)字uid (例如,1004) 運(yùn)行的所有進(jìn)程。計(jì)算器應(yīng)用程序的pid是什么?_39413)使用軟殺死終止計(jì)算器應(yīng)用程序,“堆麻將”是否仍然在桌面上運(yùn)行?是 4)使用ps -u命令組合grep,查找“堆麻將"程序的 pid號(hào),而不是使用ps -u查找整 個(gè)列表。您使加什么命令?提示:猜猜“堆麻將”程序的命令名中可能有哪個(gè)字母,使

16、用grep搜索那些字母。ps -u root|grep kmahjonng5)終止“堆麻將”程序。它是否還在桌面上運(yùn)行?buzai6)退出 c shell。步驟10:刪除所有在本實(shí)驗(yàn)中創(chuàng)建的文件和目錄。2、完成操作系統(tǒng)原理實(shí)驗(yàn)教材中“4.3 linux并發(fā)程序設(shè)計(jì)”實(shí)驗(yàn)內(nèi)容(p101-105)步驟1:編制并發(fā)程序pipeline.c。單擊紅帽子,在“ gnome幫助”菜單中單擊“附件”-“文本編輯器”命令,在文本編 輯中鍵入程序并保存為pipeline.c。在該程序中定義管道和文件描述符,并且創(chuàng)建子進(jìn)程child。該程序用到的系統(tǒng)調(diào)用有pipe()、dup()、fork()、close、exe

17、cl()、exit,它們的功能分別是建立管道、復(fù)制文件描述 符、創(chuàng)建進(jìn)程并使子進(jìn)程與父進(jìn)程有相同的程序正文、關(guān)閉文件描述符、用指定文件覆蓋調(diào)用程序、撤銷當(dāng)前進(jìn)程。清單 4-5 pipeline.c/定義管道程序# define std_input 0/定義標(biāo)準(zhǔn)輸入設(shè)備描述符# define std_output 1/定義標(biāo)準(zhǔn)輸出設(shè)備描述符int fd2;main()static char process1="father",process2="child"pipe(fd);/定義管道pipeline(process1,process2);/調(diào)用自定義函數(shù)

18、pipeline。exit(1);/程序結(jié)束pipeline(char* process1,char* process2)int i;while (i=fork()=-1);if (i)close(fd0);close(std_output); /dup(fd1);close(fd1);execl(process1, process1,0); printf(" father failed.n");elseclose(fd1);close(std_input);dup(fd0);close(fd0);execl(process2,process2,0); printf(&qu

19、ot;child failed.n"); exit(2);步驟2 :編制“管道寫”程序單擊紅帽子,在/創(chuàng)建進(jìn)程,直到創(chuàng)建成功為止/關(guān)閉管道輸入描述符關(guān)閉標(biāo)準(zhǔn)輸出描述符1/指定標(biāo)準(zhǔn)輸出描述符1為管道寫指針/關(guān)閉原始管道寫指針/用程序father覆蓋當(dāng)前程序/ execl()執(zhí)行失敗father.c作為父進(jìn)程的gnome幫助”菜單中單擊“附件”/關(guān)閉管道輸出描述符/關(guān)閉標(biāo)準(zhǔn)輸入描述符 0/指定標(biāo)準(zhǔn)輸入描述符 0為管道讀指針/關(guān)閉原始管道讀指針/用程序child覆蓋當(dāng)前程序/ execl()執(zhí)行失敗/程序結(jié)束部分工作。其內(nèi)容如下:-“文本編輯器”命令,在文本編輯中鍵入程序并保存為fathe

20、r.c。清單 4-6 father.cmain()parent is using pipe write./*將string中的內(nèi)容寫入管道中 */ n” );static char string口 =int len;len = sizeof(string);write(l, string, len);printf( " parent, parentexit(0);步驟3 :編制“管道讀”程序child.c作為子進(jìn)程的一部分工作。其內(nèi)容如下:單擊紅帽子,在“ gnome幫助”菜單中單擊“附件”-“文本編輯器”命令,在文本編 輯中鍵入程序并保存為child.c。清單 4-7 child.

21、cmain()char output30;read (0, output, 30) ;/*從管道中讀數(shù)據(jù)并存入output中*/printf( "%sn” , output);return(0);步驟4 :編譯。cc p child child.ccc -o father father.ccc -o pipeline pipeline.c步驟5 :運(yùn)行。./pipeline若運(yùn)行不成功,則應(yīng)該用文本編輯器對(duì)源程序進(jìn)行修改調(diào)試。運(yùn)行顯示結(jié)果為:parent is using pipe watechild.child,父進(jìn)程為歌詞顯示。3、結(jié)合揚(yáng)聲器編程,設(shè)計(jì)并實(shí)現(xiàn)兩個(gè)進(jìn)程并發(fā),子進(jìn)程為

22、揚(yáng)聲器唱歌, 要求:子進(jìn)程每唱一句,父進(jìn)程顯示一句歌詞。sing.c# inc lude<fcnt l h># include<s tdio xh># inc lude<s td 1 ib .h># inc lude<s t r inp .h># inc i tide <un i td . h>并 in。lude<sys/ioc l l h># inc lude<sys/type s.h># inc ludc<iinux/kd.h># def ine std.ibpljt 0# def inc st

23、djltpur 1int fd2:im i n( >(ta t i c char pro i "* chi id* ,pro2 j ="* fa tberv; pipet fd);pipe 1ine( pro j f p r o3);ex it( 1);pipe line1 hir*proi , k. r*pro2)ii n 1 i ;uh i ief ( i= fork()=-1):iff i)(c lose( fd0):clost( stb tl.hvi.tr);dup(fdl):close f fd 1 ) iexec i(prol»profo);pr

24、 intf( * father fa i led an');|/h a ih l ji u i ait h luihitub 111 j*c 1 se iicloset fd1>close(std_lbpl);dup( fd(0l)«c lose(fdo);cxe cl< pro2 »pro2 + u):printfcchild failed an*);iekil(2): father.c# inc lude< fen t l li)# include<stdio»h>0 inc iude<1tdib.h># in

25、c ludest r ing.h># ilie iude<un i5id、h># inc iude<sys/ ioc 11. h># inciude<sys/typesm# i lie i ude < i i hux/kd、h>rra in()i .pr in t f (' l ian ini mi n i x iao d* tian ini mi nt):uslecpt hu<j*4000):print"】。x i a ug hua er ka i zd i chun feng liwh ue leep(1000*4000):jr in t k ' lea i za i chun feng litnl:father.c'【己轉(zhuǎn)糧】16l. 348c"child""已轉(zhuǎn)換ml. ks7cai.3師鼎結(jié)果:rootloca ihos l root* ./sing tian mi mi n i k iao de 1 ian mi mi hao x iang hua e r ka l i.a. i rhun feng 11 ka i za i chun feag 1irootlocaihos l roola (child.c# inc jud

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論