,相對(duì)于整形的低級(jí)文件I/O描述符,它提供了I/O緩沖功能。1,創(chuàng)建">
linux 文件操作常用函數(shù),方法

linux 文件操作常用函數(shù),方法

ID:18312395

大小:60.50 KB

頁(yè)數(shù):23頁(yè)

時(shí)間:2018-09-17

linux 文件操作常用函數(shù),方法_第1頁(yè)
linux 文件操作常用函數(shù),方法_第2頁(yè)
linux 文件操作常用函數(shù),方法_第3頁(yè)
linux 文件操作常用函數(shù),方法_第4頁(yè)
linux 文件操作常用函數(shù),方法_第5頁(yè)
資源描述:

《linux 文件操作常用函數(shù),方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、linux文件操作常用函數(shù),方法在標(biāo)準(zhǔn)庫(kù)中,結(jié)構(gòu)FILE是指向文件的指針,所有對(duì)文件的操作都是通過(guò)FILE完成的,F(xiàn)ILE指針也稱為文件流,它定義在頭文件,相對(duì)于整形的低級(jí)文件I/O描述符,它提供了I/O緩沖功能。1,創(chuàng)建、打開(kāi)、關(guān)閉與刪除文件的函數(shù)族#includeFILE*fopen(constchar*filename,constchar*type);FILE*freopen(constchar*filename,constchar*type,FIlE*strem);intfclose(FILE*stream);intremove(co

2、nstchar*filename);intrename(constchar*oldname,constchar*newname);/*filename打開(kāi)文件的名稱(帶路徑)*//*Type打開(kāi)文件的方式,由權(quán)限和類型兩部分組成,前者可以是r、w、a、r+、w+、a+,后者默認(rèn)表示文本文件、使用b表示二進(jìn)制文件*//*stream已經(jīng)打開(kāi)的文件指針*/函數(shù)fopen打開(kāi)或創(chuàng)建文件;fclose關(guān)閉文件;函數(shù)freopen重新打開(kāi)文件;函數(shù)remove刪除磁盤(pán)文件;函數(shù)rename更改文件名稱。ex1:以只讀方式打開(kāi)文本文件/etc/passwd:FILE*fp;fp=fopen

3、("/etc/passwd","r");ex2:以二進(jìn)制方式創(chuàng)建文件rr.txt:FILE*fp;fp=fopen("rr.txt","wb");(只讀打開(kāi)'r',只寫(xiě)打開(kāi)'w',追加'a',增強(qiáng)功能讀寫(xiě)打開(kāi)'+')2)freopen函數(shù)本函數(shù)實(shí)現(xiàn)文件流的替換。它首先關(guān)閉原文件流stream,然后再以freopen的方式打開(kāi)一個(gè)新的文件流,此后對(duì)原文件流的任意操作都自動(dòng)轉(zhuǎn)換為對(duì)新文件流的操作。成功時(shí)返回指向新文件的FILE型指針,否則返回NULL。Unix進(jìn)程默認(rèn)打開(kāi)三個(gè)文件:標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)錯(cuò)誤輸出,它們的FILE標(biāo)識(shí)符號(hào)分別是stdout、stdin、stderr。

4、函數(shù)freopen常用于將以上三個(gè)文件流重定向,實(shí)現(xiàn)方法如下:/*-----------open.c------------*/#includevoidmain(){FILE*fp;char*szBuf[100];/*將屏幕標(biāo)準(zhǔn)輸出的內(nèi)容重定向到文件"/tmp/1"*/if((fp=freopen("/tmp/1","w",stderr))==NULL){printf("stderr--/tmp/1failed./n");return;}/*stderr已經(jīng)輸出重定向,所有錯(cuò)誤輸出內(nèi)容都將寫(xiě)到"/tmp/1"*/fputs("TLikeUnix./n",std

5、err);/*關(guān)閉文件*/fclose(fp);/*將標(biāo)準(zhǔn)輸入由鍵盤(pán)輸入更改為從文件"/tmp/1"中讀入*/if((fp=freopen("/tmp/1","r",stdin))==NULL){printf("stdin--/tmp/1failed./n");return;}memset(szBuf,0,sizeof(szBuf));/*stdin已經(jīng)輸入重定向,所有內(nèi)容都將寫(xiě)入文件"/tmp/1"*/fgets(szBuf,sizeof(szBuf),stdin);printf("szBuf=[%s]",szBuf);fclose(fp);}編譯與運(yùn)行:gcc-oopen.

6、copen./openszBuf=[ILikeUNIX.]3)fclose函數(shù)為了減少系統(tǒng)資源消耗、避免誤改文件內(nèi)容和更新文件緩沖,應(yīng)該及時(shí)關(guān)閉在將來(lái)一段時(shí)間內(nèi)不需要使用的文件。函數(shù)fclose關(guān)閉文件流stream,成功時(shí)返回0,否則返回EOF;4)remove函數(shù)remove刪除字符串filename指定的文件或目錄,當(dāng)filename指定文件時(shí),remove相當(dāng)于unlinke函數(shù),當(dāng)filename指定目錄時(shí),相當(dāng)于rmdir;文件的無(wú)格式讀寫(xiě)1)字符讀寫(xiě)字符讀寫(xiě)函數(shù)每次只操作一個(gè)字符,為了提高磁盤(pán)讀寫(xiě)效率,標(biāo)準(zhǔn)文件編程中提供了緩沖處理。(1)字符輸入函數(shù)#includ

7、eintgetc(FILE*stream);intgetchar(void);intfgetc(FILE*stream);函數(shù)getc以u(píng)nsignedchar類型讀取文件輸入流stream中的一個(gè)字符,并將該無(wú)符號(hào)字符轉(zhuǎn)化為整數(shù)返回,同時(shí)移動(dòng)文件指針到下一個(gè)字符處。函數(shù)getchar實(shí)際上是關(guān)于getc的一個(gè)宏定義"getc(stdin)".函數(shù)fgetc的功能類似于getc,不同的是,它的執(zhí)行速度遠(yuǎn)低于getc,因此getc常常被定義在宏中使用。當(dāng)文件結(jié)束或錯(cuò)誤時(shí),這三

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。