版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
5.1文件I/O介紹可用的文件I/O函數(shù)——打開(kāi)文件、讀文件、寫文件等等。大多數(shù)linux文件I/O只需用到5個(gè)函數(shù):open、read、write、lseek
以及close。 不帶緩存指的是每個(gè)read和write都調(diào)用內(nèi)核中的一個(gè)系統(tǒng)調(diào)用。這些不帶緩存的I/O函數(shù)不是ANSIC的組成部分,但是POSIX組成部分。5.2文件描述符對(duì)于內(nèi)核而言,所有打開(kāi)文件都由文件描述符引用。當(dāng)打開(kāi)一個(gè)現(xiàn)存文件或創(chuàng)建一個(gè)新文件時(shí),內(nèi)核向進(jìn)程返回一個(gè)文件描述符。當(dāng)讀、寫一個(gè)文件時(shí),用open或creat返回的文件描述符標(biāo)識(shí)該文件,將其作為參數(shù)傳送給read或write。文件描述符是一個(gè)非負(fù)整數(shù)。文件描述符的范圍是0~OPEN_MAX。其中0、1、2分別被代換為符號(hào)常量,系統(tǒng)留用:STDIN_FILENO0標(biāo)準(zhǔn)輸入(默認(rèn)為鍵盤)STDOUT_FILENO1標(biāo)準(zhǔn)輸出(默認(rèn)為屏幕)STDERR_FILENO2標(biāo)準(zhǔn)錯(cuò)誤輸出(默認(rèn)為屏幕)
注:早期的UNIX版本采用的上限值是19(允許每個(gè)進(jìn)程打開(kāi)20個(gè)文件),對(duì)于現(xiàn)在的很多系統(tǒng)其值有變化。5.3基本APIopen函數(shù)creat函數(shù)read函數(shù)write函數(shù)close函數(shù)lseek函數(shù)fcntl函數(shù)ioctl函數(shù)select實(shí)現(xiàn)I/O復(fù)用5.3.1基本API——open函數(shù)#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>int
open(constchar*pathname,int
oflag, …/*,mode_tmode*/);功能:打開(kāi)文件返回:若成功為文件描述符,若出錯(cuò)為-1參數(shù):參數(shù)名功能說(shuō)明取值pathname要打開(kāi)或創(chuàng)建的文件的名字oflag說(shuō)明對(duì)文件的操作方式由<fcntl.h>頭文件中的常數(shù)定義構(gòu)成參見(jiàn)下面的取值表mode新建文件的權(quán)限設(shè)置僅當(dāng)創(chuàng)建新文件時(shí)才使用該參數(shù)八進(jìn)制表示的權(quán)限值O_RDONLY只讀打開(kāi)。O_WRONLY只寫打開(kāi)。O_RDWR讀、寫打開(kāi)。O_APPEND追加方式寫O_CREAT文件不存在時(shí)創(chuàng)建O_EXCL結(jié)合O_CREAT使用。如果文件存在,返回錯(cuò)誤;如果文件不存在,則創(chuàng)建文件O_TRUNC如果此文件存在,而且為只讀或只寫成功打開(kāi),則將其長(zhǎng)度截短為0。O_NOCTTY如果pathname指的是終端設(shè)備,則不將此設(shè)備分配作為此進(jìn)程的控制終端。O_NONBLOCK如果pathname指的是一個(gè)FIFO、一個(gè)塊特殊文件或一個(gè)字符特殊文件,則此選擇項(xiàng)為此文件的本次打開(kāi)操作和后續(xù)的I/O操作設(shè)置非阻塞方式O_SYNC使每次write都等到物理I/O操作完成。1、Oflag的設(shè)置#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<stdio.h>int
main(int
argc,char*argv[]){
int
fd;
fd=open(“./aa.c”,O_TRUNC);
if(fd==-1) {
perror(“fail\n”);
} else {
perror("success\n");
close(fd); } return0;}實(shí)例:清空文件(刪除文件的全部?jī)?nèi)容)__即將文件的長(zhǎng)度截短為0即O_TRUNC源代碼/*文件aa.c不存在,open出錯(cuò),返回-1。成功執(zhí)行后,aa.c文件中的內(nèi)容將被清除*//*perror(char*msg)完成輸出msg,并輸出perror的執(zhí)行情況,格式為“msg內(nèi)容:執(zhí)行結(jié)果提示”*/open("./aa.c",O_TRUNC);open("./aa.c",O_RDWR|O_CREAT,0666);open("./aa.c",O_RDWR|O_TRUNC);open("./aa.c",O_RDWR|O_APPEND);open("./aa.c",O_RDWR|O_CREAT|O_EXCL);open("./aa.c",O_RDWR|O_CREAT|O_EXCL,0666);
demo1demo2實(shí)例:分析并使用代碼測(cè)試以下open函數(shù)的功能注意:Oflag的多個(gè)值間使用“|”分開(kāi)Open函數(shù)中使用八進(jìn)制指定ugo的權(quán)限2、mode的設(shè)置參考文件權(quán)限設(shè)置命令注意:mode在open中使用八進(jìn)制,以數(shù)字“0”開(kāi)頭【補(bǔ)充】命令“mkdir-m權(quán)限文件或路徑”與“chmod
權(quán)限文件或路徑”權(quán)限mode
的設(shè)置
格式一:[ugoa][+-=][rwx][,...] 格式二:mode可以是數(shù)字字符串其中
u
表示該檔案的擁有者g
表示與該檔案的擁有者屬于同一個(gè)群體(group)者o
表示其他以外的人a
表示這三者皆是
+
表示增加權(quán)限-
表示取消權(quán)限=
表示唯一設(shè)定權(quán)限
r
表示可讀取,對(duì)應(yīng)8進(jìn)制值為4w
表示可寫入,對(duì)應(yīng)8進(jìn)制值為2x
表示可執(zhí)行,對(duì)應(yīng)8進(jìn)制值為1例題:采用格式一和格式二等同mkdir-m
a=rwx
file和mkdir-m0777
file
效果相同mkdir-m
ug=rwx,o=x
file
和mkdir-m
0771
file
效果相同
例題:使用“chmod
權(quán)限文件或路徑”改變文件或路徑的權(quán)限注意:上面的mkdir和chmod命令中的mode可以使用八進(jìn)制(如0777)5.3.2基本API——creat函數(shù)#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>int
creat(constchar*pathname,mode_t
mode);功能:創(chuàng)建一個(gè)新文件。返回:若成功,返回只寫方式打開(kāi)的文件描述符,若出錯(cuò)返回-1。注意:(1)此函數(shù)等效于:open(pathname,O_WRONLY|O_CREAT|O_TRUNC, mode);見(jiàn)例:demo3.c5.3.3基本API——read函數(shù)#include<unistd.h>ssize_t
read(int
fd,void*buff,size_t
nbytes);功能:從打開(kāi)文件中讀數(shù)據(jù)返回:read成功,則返回讀到的字節(jié)數(shù)。如已到達(dá)文件的尾端,則返回0。若出錯(cuò)為-1。參數(shù):參數(shù)名功能說(shuō)明取值fd被讀取文件的文件描述open或creat的返回值buff讀取到的數(shù)據(jù)在內(nèi)存中的位置一般為字符數(shù)組名nbytes期望本次讀到的最大長(zhǎng)度字符數(shù)一般為字符數(shù)組的長(zhǎng)度注意:(1)讀操作從文件的當(dāng)前位移量處開(kāi)始,在成功返回之前,該位移量增加實(shí)際讀得的字節(jié)數(shù)。(2)有多種情況可使實(shí)際讀到的字節(jié)數(shù)少于要求讀字節(jié)數(shù):讀普通文件時(shí),在讀到要求字節(jié)數(shù)之前已到達(dá)了文件尾端。例如,若在到達(dá)文件尾端之前還有30個(gè)字節(jié),而要求讀100個(gè)字節(jié),則read返回30,下一次再調(diào)用read時(shí),它將返回0(文件尾端)。
當(dāng)從終端設(shè)備讀時(shí),通常一次最多讀一行。
某些面向記錄的設(shè)備,例如磁帶,一次最多返回一個(gè)記錄。
當(dāng)從網(wǎng)絡(luò)讀時(shí),網(wǎng)絡(luò)中的緩沖機(jī)制可能造成返回值小于所要求讀的字節(jié)數(shù)。使用規(guī)范:charrc[100];intnum=0;int
df=open(文件,讀權(quán)限);if(df!=-1){ num=read(df,rc,100);
while(num>0) { dosomething;num=read(df,rc,100); }
close(df);}見(jiàn)例:demo4.c補(bǔ)充內(nèi)容:判斷文件的存在性及權(quán)限補(bǔ)充:判讀文件的存在性及權(quán)限#include<unistd.h>
#include<fcntl.h>
int
access(constchar*pathname,intmode);
功能:檢查調(diào)用進(jìn)程是否可以對(duì)指定的文件執(zhí)行某種操作。
參數(shù):pathname:需要測(cè)試的文件路徑名。
mode:需要測(cè)試的操作模式,可能值是一個(gè)或多個(gè)(組合體):R_OK(可讀?)W_OK(可寫?)X_OK(可執(zhí)行?)F_OK(文件存在?)返回:成功執(zhí)行時(shí),返回0。失敗返回-1
見(jiàn)例:
demo5.c5.3.4基本API——write函數(shù)#include<unistd.h>ssize_t
write(int
fd,constvoid*buff,size_t
nbytes);功能:向打開(kāi)文件寫數(shù)據(jù)返回:若成功為已寫的字節(jié)數(shù),若出錯(cuò)為-1。注意:(1)其返回值通常與參數(shù)nbytes的值相同,否則表示出錯(cuò)。write出錯(cuò)的一個(gè)常見(jiàn)原因是:磁盤已寫滿。超過(guò)了對(duì)一個(gè)給定進(jìn)程的文件長(zhǎng)度限制。(2)對(duì)于普通文件,寫操作從文件的當(dāng)前位移量處開(kāi)始。如果在打開(kāi)該文件時(shí),指定了O_APPEND選擇項(xiàng),則在每次寫操作之前,將文件位移量設(shè)置在文件的當(dāng)前結(jié)尾處。在一次成功寫之后,該文件位移量增加實(shí)際寫的字節(jié)數(shù)。使用規(guī)范(一次性輸出字符串到文件):charrc[100]=字符串;//設(shè)字符串的最大長(zhǎng)度為100intnum=0,TotalLong=strlen(rc);int
df=open(文件,寫權(quán)限);if(df!=-1){ //一次性輸出
if(num!=TotalLong) {
printf(“輸出錯(cuò)誤!”); return0; } else {
printf(“成功輸出!”); }}見(jiàn)例:um=write(df,rc,TotalLong);使用規(guī)范(分次輸出字符串到文件):charrc[3000]=“…”;//設(shè)字符串的最大長(zhǎng)度為3000char*prc=rc;intnum=0,TotalLong=strlen(rc);int
df=open(文件,寫權(quán)限);if(df!=-1){//每次希望輸出100個(gè)字符
while(num!=TotalLong) {
//修正偏移量
num=write(df,prc,100);
TotalLong=TotalLong-num; }}見(jiàn)例:demo7.c文件復(fù)制見(jiàn)例:um=write(df,prc,100);prc=prc+num;
//不能使用prc+100,由于num<=1005.3.5基本API——close函數(shù)#include<unistd.h>intclose(int
filedes);功能:關(guān)閉一個(gè)打開(kāi)文件返回:若成功為0,若出錯(cuò)為-1注意:當(dāng)一個(gè)進(jìn)程終止時(shí),它所有的打開(kāi)文件都由內(nèi)核自動(dòng)關(guān)閉。作為一個(gè)習(xí)慣好的程序員,應(yīng)該顯式地用close關(guān)閉打開(kāi)的文件。5.3.6基本API——lseek函數(shù)1、當(dāng)前文件偏移量當(dāng)前文件偏移量是一個(gè)非負(fù)整數(shù),用以度量打開(kāi)文件從文件開(kāi)始處計(jì)算的字節(jié)數(shù)。通常,讀、寫操作都從當(dāng)前文件偏移量處開(kāi)始,并使偏移量增加所讀或?qū)懙淖止?jié)數(shù)。按系統(tǒng)默認(rèn),當(dāng)打開(kāi)一個(gè)文件時(shí),除非指定O_APPEND選擇項(xiàng),否則該位移量被設(shè)置為0??梢哉{(diào)用lseek顯式地定位一個(gè)打開(kāi)文件的文件偏移量。2、lseek#include<sys/types.h>#include<unistd.h>off_t
lseek(int
fd,off_toffset,intwhence);功能:顯式地定位一個(gè)打開(kāi)文件的文件偏移量。返回:若成功為新的文件位移,若出錯(cuò)為-1。參數(shù):參數(shù)名功能說(shuō)明取值fd被讀取文件的文件描述open或creat的返回值offset相對(duì)偏移量偏移量的值,可以有正負(fù)whence相對(duì)參考方式SEEK_SET:位移量=文件開(kāi)始處+offset個(gè)字節(jié)SEEK_CUR:位移量=當(dāng)前位移量+offset個(gè)字節(jié)SEEK_END:位移量=文件長(zhǎng)度+offset個(gè)字節(jié)見(jiàn)例注釋:demo9_1.c見(jiàn)例:demo9.c補(bǔ)充STDOUT_FILENO補(bǔ)充:標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸出,標(biāo)準(zhǔn)出錯(cuò)1、unix系統(tǒng)調(diào)用中的標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸出,標(biāo)準(zhǔn)出錯(cuò)有兩組:STDOUT_FILENOSTDIN_FILENOSTDERR_FILENOstdin
stdout
stderr
2、相同點(diǎn):STDOUT_FILENOSTDIN_FILENOSTDERR_FILENO和stdin
stdout
stderr
他們表示的意思是差不多的,都是unix系統(tǒng)調(diào)用中的標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸出,標(biāo)準(zhǔn)出錯(cuò)。補(bǔ)充:標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸出,標(biāo)準(zhǔn)出錯(cuò)3、區(qū)別:他們的類型是不一樣stdin等是FILE*類型,屬于標(biāo)準(zhǔn)I/O,在<stdio.h>。#include<stdio.h>externFILE*stdin;externFILE*stdout;externFILE*stderr;STDIN_FILENO等是文件描述符,是非負(fù)整數(shù),一般定義為0,1,2,屬于沒(méi)有buffer的I/O,直接調(diào)用系統(tǒng)調(diào)用,在<unistd.h>。在/usr/include/unistd.h中有如下定義:/*Standardfiledescriptors.*/#defineSTDIN_FILENO0/*Standardinput.*/#defineSTDOUT_FILENO1/*Standardoutput.*/#defineSTDERR_FILENO2/*Standarderroroutput.*/例題:#include<unistd.h>int
main(void){
intn;charbuf[100];
while(n=read(STDIN_FILENO,buf,100))//讀取標(biāo)準(zhǔn)輸入到buf中,返回讀取字節(jié)數(shù)。{
if(n!=write(STDOUT_FILENO,buf,n))//把buf
寫到標(biāo)準(zhǔn)輸出中
perror("writeerror");}
if(n<0)perror("readerror");return0;}1、標(biāo)準(zhǔn)終端運(yùn)行結(jié)果:輸入一行,馬上輸出一行,也就是按照原樣輸出注意:終端輸入文件時(shí),使用ctrl+d來(lái)輸入文件結(jié)束符demo10.c2、使用輸出重定向來(lái)運(yùn)行可以使得輸入的字符串并不是輸出到終端,而是輸出到指定的文件中3、使用輸入輸出重定向來(lái)運(yùn)行輸入的字符串可以不從鍵盤,而是從文件或已有的文件描述符中獲得分析wc命令,更多關(guān)于重定向命令參照”重定向”5.3.7基本API——fcntl函數(shù)#include<sys/types.h>#include<unistd.h>#include<fcntl.h>int
fcntl(int
fd,int
cmd);
int
fcntl(int
fd,int
cmd,longarg);
int
fcntl(int
fd,int
cmd,structflock*lock);功能:根據(jù)文件描述符來(lái)操作文件的特性
。參數(shù):參數(shù)名說(shuō)明取值fd被操作的文件描述符cmd操作命令F_DUPFD復(fù)制一個(gè)現(xiàn)有的描述符F_GETFD或F_SETFD獲得/設(shè)置文件描述符標(biāo)記
F_GETFL或F_SETFL獲得/設(shè)置文件狀態(tài)標(biāo)記
F_GETOWN或F_SETOWN獲得/設(shè)置異步I/O所有權(quán)
F_GETLK,F_SETLK或F_SETLKW獲得/設(shè)置記錄鎖注意:F_SETFL將文件狀態(tài)標(biāo)志設(shè)置為第三個(gè)參數(shù)的值(取為整型值)。可以更改的幾個(gè)標(biāo)志是:O_APPEND,O_NONBLOCK,O_SYNC,O_ASYNC。F_GETOWN取當(dāng)前接收SIGIO和SIGURG信號(hào)的進(jìn)程ID或進(jìn)程組ID。F_SETOWN設(shè)置接收SIGIO和SIGURG信號(hào)的進(jìn)程ID或進(jìn)程組ID。正的arg指定一個(gè)進(jìn)程ID,負(fù)的arg表示等于arg絕對(duì)值的一個(gè)進(jìn)程組ID。F_SETLKW是F_SETLK的阻塞版本(命令名中的W表示等待wait)。如果存在其他鎖,則調(diào)用進(jìn)程睡眠;如果捕捉到信號(hào)則睡眠中斷
返回值:如果出錯(cuò),所有命令都返回-1,如果成功則返回某個(gè)其他值(返回值與命令cmd有關(guān))。
int
main(void){
int
fd,flag; if((fd=open("./test.txt",O_RDWR|O_APPEND|O_CREAT|O_TRUNC,0666))<0) {
perror("open"); exit(-1); }
write(fd,"yang",4);
lseek(fd,0,SEEK_SET);
write(fd,"zhu",3); return0;}
例題:獲得并修改文件狀態(tài)標(biāo)記。代碼:demo11flag=fcntl(fd,F_GETFL);flag=flag&~O_APPENDfcntl(fd,F_SETFL,flag);int
fcntl(int
fd,int
cmd,structflock*lock);1、文件鎖的使用環(huán)境:在文件已經(jīng)共享的情況下,也就是當(dāng)多個(gè)用戶共同使用,操作一個(gè)文件的情況,這時(shí)LINUX通常采用的方法是給文件上鎖,來(lái)避免共享的資源產(chǎn)生競(jìng)爭(zhēng)的狀態(tài)。補(bǔ)充:用fcntl給文件加鎖flock結(jié)構(gòu)體包含了設(shè)置記錄鎖的具體狀態(tài)成員flock的結(jié)構(gòu)如下所示:Structflock{shortl_type; /*鎖的類型,取值如下: F_RDLCK讀取鎖(共享鎖)F_WRLCK寫入鎖(排斥鎖)F_UNLCK解鎖*/off_t
l_start; //相對(duì)位移量(字節(jié))shortl_whence; /*相對(duì)位移量的起點(diǎn),取值如下:SEEK_SET/SEEK_CUR/SEEK_END(同lseek的whence)*/off_t
l_len;//加鎖區(qū)域的長(zhǎng)度pid_t
l_pid;}2、flock結(jié)構(gòu)注意:為加鎖整個(gè)文件,通常的方法是將l_start
說(shuō)明為0,l_whence
說(shuō)明為SEEK_SET,l_len
說(shuō)明為0。例題:寫入鎖為互斥鎖,一個(gè)時(shí)刻只能有一個(gè)寫入鎖存在。代碼:demo12_1例題:讀取鎖為共享鎖,當(dāng)一個(gè)進(jìn)程已設(shè)定讀取鎖后,另一個(gè)進(jìn)程還可以設(shè)置讀取鎖。代碼:demo12_25.3.8基本API——ioctl函數(shù)#include<unistd.h>#include<sys/ioctl.h>int
ioctl(int
fd,int
cmd,...);功能:ioctl最主要使用在終端設(shè)備I/O控制。返回:若出錯(cuò)則為-1,若成功則為其他值。參數(shù):參數(shù)名說(shuō)明取值fd要控制的設(shè)備文件描述符cmd要設(shè)備完成的操作cmd參數(shù)cmd操作的參數(shù)代碼:demo13#include<sys/types.h>#include<sys/time.h>#include<unistd.h>intselect(int
maxfd,
fd_set*readset, fd_set*writeset,
fd_set*exceptset, conststructtimeval*timeout);功能:同時(shí)監(jiān)控多個(gè)文件描述符上是否有輸入、輸出、錯(cuò)誤。返回:準(zhǔn)備就緒的描述符數(shù),若超時(shí)則為0,若出錯(cuò)則為-1。5.3.9基本API——
select函數(shù)參數(shù)名說(shuō)明取值maxfd要被監(jiān)控的描述符個(gè)數(shù)最大fd+1readset被監(jiān)控的是否有輸入的文件描述符集初始化時(shí),被監(jiān)控描述字的相應(yīng)位置0;調(diào)用select后,未就就緒設(shè)備的相應(yīng)位被置為0,就緒位置為1writeset被監(jiān)控的是否有輸出的文件描述符集exceptset被監(jiān)控的是否有錯(cuò)誤產(chǎn)生的文件描述符集timeval監(jiān)控的超時(shí)時(shí)間structtimeval類型的指針。參見(jiàn)timeval取值參見(jiàn)文件描述符集操作宏函數(shù)代碼:demo17select函數(shù)根據(jù)希望進(jìn)行的文件操作對(duì)文件描述符進(jìn)行分類處理,對(duì)文件描述符的處理主要設(shè)計(jì)4個(gè)宏函數(shù):FD_ZERO(fd_set*set) 清除一個(gè)文件描述符集;FD_SET(int
fd,fd_set*set) 將一個(gè)文件描述符加入文件描述符集中;FD_CLR(int
fd,fd_set*set)
將一個(gè)文件描述符從文件描述符集中清除;FD_ISSET(int
fd,fd_set*set)
測(cè)試該集中的一個(gè)給定位是否有變化;文件描述符集操作宏函數(shù)參數(shù)名說(shuō)明取值maxfd要被監(jiān)控的描述符個(gè)數(shù)最大fd+1readset被監(jiān)控的是否有輸入的文件描述符集初始化時(shí),被監(jiān)控描述字的相應(yīng)位置0;調(diào)用select后,未就就緒設(shè)備的相應(yīng)位被置為0,就緒位置為1writeset被監(jiān)控的是否有輸出的文件描述符集exceptset被監(jiān)控的是否有錯(cuò)誤產(chǎn)生的文件描述符集timeval監(jiān)控的超時(shí)時(shí)間structtimeval類型的指針。參見(jiàn)timeval取值參見(jiàn)文件描述符集操作宏函數(shù)代碼:demo17timeval取值NULL:永遠(yuǎn)等待,直到捕捉到信號(hào)或文件描述符已準(zhǔn)備好為止;具體值:
structtimeval類型的指針,若等待為timeout時(shí)間還沒(méi)有文件描述符準(zhǔn)備好,就立即返回;0:從不等待,測(cè)試所有指定的描述符并立即返回;structtimeval{longtv_sec;/*seconds*/longtv_usec;/*microseconds*/};timeval結(jié)構(gòu)體代碼:demo14#include<sys/time.h>int
gettimeofday(struct
timeva
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 語(yǔ)文學(xué)科核心素養(yǎng)的內(nèi)涵
- 增城市英語(yǔ)短文語(yǔ)法填空閱讀理解高考一輪訓(xùn)練及答案( 高考)
- 高考志愿填報(bào)的方法與技巧圖文
- 三年級(jí)心理健康教育教案--學(xué)案教案
- 中學(xué)生心理健康教案
- 全省小學(xué)數(shù)學(xué)教師賽課一等獎(jiǎng)數(shù)學(xué)一年級(jí)上冊(cè)(人教2024年新編)《數(shù)學(xué)游戲》課件
- 高中物理第一章靜電場(chǎng)課時(shí)5電勢(shì)差課件新人教版選修3-
- 2024至2030年中國(guó)彈力亞麻棉數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024至2030年中國(guó)干式溫度槽行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年中國(guó)天然藺草蕎麥枕數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 物質(zhì)的輸入和輸出.PPT
- 民事案件卷宗目錄封面11
- 2022年2022年古籍樣式排版模板
- 大班繪本:喜歡鐘表的國(guó)王ppt課件
- 藝術(shù)裝飾藝術(shù)運(yùn)動(dòng)
- 樊登讀書會(huì)營(yíng)銷策略分析
- 國(guó)潮風(fēng)喜迎中秋節(jié)傳統(tǒng)節(jié)日介紹主題班會(huì)PPT模板
- 工程維修承諾書范本
- 《工作協(xié)調(diào)單》模板
- 《電動(dòng)汽車》課件(PPT)
- 火力發(fā)電廠 施工圖設(shè)計(jì)計(jì)守則( 熱 機(jī) 篇)
評(píng)論
0/150
提交評(píng)論