?? 10.htm
字號(hào):
<TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關(guān)函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>open,fopen<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<stdio.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>int fileno(FILE * stream);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數(shù)說(shuō)明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>fileno()用來(lái)取得參數(shù)stream指定的文件流所使用的文件描述詞。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>返回文件描述詞。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<stdio.h><BR>main()<BR>{<BR>FILE * fp;<BR>int fd;<BR>fp=fopen(“/etc/passwd”,”r”);<BR>fd=fileno(fp);<BR>printf(“fd=%d\n”,fd);<BR>fclose(fp);<BR>}<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>執(zhí)行 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>fd=3<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc155></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR>fopen(打開(kāi)文件) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關(guān)函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>open,fclose<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<stdio.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>FILE * fopen(const char * path,const char * mode);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數(shù)說(shuō)明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>參數(shù)path字符串包含欲打開(kāi)的文件路徑及文件名,參數(shù)mode字符串則代表著流形態(tài)。<BR>mode有下列幾種形態(tài)字符串:<BR>r 打開(kāi)只讀文件,該文件必須存在。<BR>r+ 打開(kāi)可讀寫的文件,該文件必須存在。<BR>w 打開(kāi)只寫文件,若文件存在則文件長(zhǎng)度清為0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。<BR>w+ 打開(kāi)可讀寫文件,若文件存在則文件長(zhǎng)度清為零,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。<BR>a 以附加的方式打開(kāi)只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。<BR>a+ 以附加方式打開(kāi)可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。<BR>上述的形態(tài)字符串都可以再加一個(gè)b字符,如rb、w+b或ab+等組合,加入b 字符用來(lái)告訴函數(shù)庫(kù)打開(kāi)的文件為二進(jìn)制文件,而非純文字文件。不過(guò)在POSIX系統(tǒng),包含Linux都會(huì)忽略該字符。由fopen()所建立的新文件會(huì)具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)權(quán)限,此文件權(quán)限也會(huì)參考umask值。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>文件順利打開(kāi)后,指向該流的文件指針就會(huì)被返回。若果文件打開(kāi)失敗則返回NULL,并把錯(cuò)誤代碼存在errno 中。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>附加說(shuō)明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>一般而言,開(kāi)文件后會(huì)作一些文件讀取或?qū)懭氲膭?dòng)作,若開(kāi)文件失敗,接下來(lái)的讀寫動(dòng)作也無(wú)法順利進(jìn)行,所以在fopen()后請(qǐng)作錯(cuò)誤判斷及處理。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<stdio.h><BR>main()<BR>{<BR>FILE * fp;<BR>fp=fopen(“noexist”,”a+”);<BR>if(fp= =NULL) return;<BR>fclose(fp);<BR>}<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc156></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR>fputc(將一指定字符寫入文件流中) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關(guān)函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>fopen,fwrite,fscanf,putc<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<stdio.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>int fputc(int c,FILE * stream);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數(shù)說(shuō)明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>fputc 會(huì)將參數(shù)c 轉(zhuǎn)為unsigned char 后寫入?yún)?shù)stream 指定的文件中。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>fputc()會(huì)返回寫入成功的字符,即參數(shù)c。若返回EOF則代表寫入失敗。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<stdio.h><BR>main()<BR>{<BR>FILE * fp;<BR>char a[26]=”abcdefghijklmnopqrstuvwxyz”;<BR>int i;<BR>fp= fopen(“noexist”,”w”);<BR>for(i=0;i<26;i++)<BR>fputc(a[i],fp);<BR>fclose(fp);<BR>}<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc157></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR>fputs(將一指定的字符串寫入文件內(nèi)) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關(guān)函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>fopen,fwrite,fscanf,fputc,putc<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<stdio.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>int fputs(const char * s,FILE * stream);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數(shù)說(shuō)明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>fputs()用來(lái)將參數(shù)s所指的字符串寫入到參數(shù)stream所指的文件內(nèi)。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>若成功則返回寫出的字符個(gè)數(shù),返回EOF則表示有錯(cuò)誤發(fā)生。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>請(qǐng)參考fgets()。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc158></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR>fread(從文件流讀取數(shù)據(jù)) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關(guān)函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>fopen,fwrite,fseek,fscanf<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<stdio.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數(shù)說(shuō)明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>fread()用來(lái)從文件流中讀取數(shù)據(jù)。參數(shù)stream為已打開(kāi)的文件指針,參數(shù)ptr 指向欲存放讀取進(jìn)來(lái)的數(shù)據(jù)空間,讀取的字符數(shù)以參數(shù)size*nmemb來(lái)決定。Fread()會(huì)返回實(shí)際讀取到的nmemb數(shù)目,如果此值比參數(shù)nmemb 來(lái)得小,則代表可能讀到了文件尾或有錯(cuò)誤發(fā)生,這時(shí)必須用feof()或ferror()來(lái)決定發(fā)生什么情況。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>返回實(shí)際讀取到的nmemb數(shù)目。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>附加說(shuō)明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<stdio.h><BR>#define nmemb 3<BR>struct test<BR>{<BR>char name[20];<BR>int size;<BR>}s[nmemb];<BR>main()<BR>{<BR>FILE * stream;<BR>int i;<BR>stream = fopen(“/tmp/fwrite”,”r”);<BR>fread(s,sizeof(struct test),nmemb,stream);<BR>fclose(stream);<BR>for(i=0;i<nmemb;i++)<BR>printf(“name[%d]=%-20s:size[%d]=%d\n”,i,s[i].name,i,s[i].size);<BR>}<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>執(zhí)行 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>name[0]=Linux! size[0]=6<BR>name[1]=FreeBSD! size[1]=8<BR>name[2]=Windows2000 size[2]=11<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc159></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR>freopen(打開(kāi)文件) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關(guān)函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>fopen,fclose<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<stdio.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>FILE * freopen(const char * path,const char * mode,FILE * stream);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數(shù)說(shuō)明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>參數(shù)path字符串包含欲打開(kāi)的文件路徑及文件名,參數(shù)mode請(qǐng)參考fopen()說(shuō)明。參數(shù)stream為已打開(kāi)的文件指針。Freopen()會(huì)將原stream所打開(kāi)的文件流關(guān)閉,然后打開(kāi)參數(shù)path的文件。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>文件順利打開(kāi)后,指向該流的文件指針就會(huì)被返回。如果文件打開(kāi)失敗則返回NULL,并把錯(cuò)誤代碼存在errno 中。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<stdio.h><BR>main()<BR>{<BR>FILE * fp;<BR>fp=fopen(“/etc/passwd”,”r”);<BR>fp=freopen(“/etc/group”,”r”,fp);<BR>fclose(fp);<BR>}<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc160></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR>fseek(移動(dòng)文件流的讀寫位置) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關(guān)函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>rewind,ftell,fgetpos,fsetpos,lseek<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<stdio.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數(shù) </FONT></DIV></TD> <TD><FONT face=宋體 size=2>int fseek(FILE * stream,long offset,int whence);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數(shù)說(shuō)明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>fseek()用來(lái)移動(dòng)文件流的讀寫位置。參數(shù)stream為已打開(kāi)的文件指針,參數(shù)offset為根據(jù)參數(shù)whence來(lái)移動(dòng)讀寫位置的位移數(shù)。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>參數(shù) </FONT></DIV></TD>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -