linux下關於檔案操作記錄

2021-08-03 08:35:52 字數 3231 閱讀 1861

linux的fopen函式詳解:

fopen(開啟檔案)

相關函式 open,fclose

表頭檔案 #include

定義函式 file * fopen(const char * path,const char * mode);

函式說明 引數path字串包含欲開啟的檔案路徑及檔名,引數mode字串則代表著流形態。

mode有下列幾種形態字串:

r 開啟唯讀檔案,該檔案必須存在。

r+ 開啟可讀寫的檔案,該檔案必須存在。

w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消

失。若檔案不存在則建立該檔案。

w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容

會消失。若檔案不存在則建立該檔案。

a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,

如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會

被保留。

a+ 以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該文

件,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的

內容會被保留。

上述的形態字串都可以再加乙個b字元,如rb、w+b或ab+等組

合,加入b 字元用來告訴函式庫開啟的檔案為二進位制檔案,而非純

文字檔案。不過在posix系統,包含linux都會忽略該字元。由fopen

()所建立的新檔案會具有

s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)許可權,此檔案許可權也會參考umask值。

返回值 檔案順利開啟後,指向該流的檔案指標就會被返回。若果檔案開啟失敗則返回null,並把錯誤**存在errno 中。

附加說明 一般而言,開檔案後會作一些檔案讀取或寫入的動作,若開檔案失敗,接下來的讀寫動作也無法順利進行,所以在fopen()後請作錯誤判斷及處理。

linux下c語言的檔案(fputc,fgetc,fwrite,fread對檔案讀寫操作)的例子://

fputc 向檔案寫入字元

#include #include

main()

while ((ch=getchar())!='\n')

fputc( ch, fp );

fclose(fp);

}-------------

fp=fopen("test.txt","w") ,把"w"改為 "a" 可以建立檔案並且追加寫入內容

exit(0); 需要包含 stdlib.h 標頭檔案,才能使用

//fgetc 讀取字元

#include #include

main( int argc, char *argv )

while ((ch=fgetc(fp))!=eof)

putchar(ch);

fclose(fp);

}檔案結尾,通過判斷 eof

//fwrite 的使用

使陣列或結構體等型別可以進行一次性讀寫

#include #include main()

stu;

if((fp1=fopen("test.txt","wb"))==null)

for( i=0;i<2;i++)

fclose(fp1);}//

fread 的使用

#include #include main()

stu;

if((fp1=fopen("test.txt","rb"))==null)

printf("讀取檔案的內容如下:\n");

for (i=0;i<2;i++)

fclose(fp1);}//

fprintf , fscanf, putw , getw , rewind , fseek 函式

這些函式的話我就不演示了 ,

這些函式基本都一對來使用,例如 fputc 和 fgetc 一起來用.//

fputc 向檔案寫入字元

#include #include

main()

while ((ch=getchar())!='\n')

fputc( ch, fp );

fclose(fp);

}-------------

fp=fopen("test.txt","w") ,把"w"改為 "a" 可以建立檔案並且追加寫入內容

exit(0); 需要包含 stdlib.h 標頭檔案,才能使用

//fgetc 讀取字元

#include #include

main( int argc, char *argv )

while ((ch=fgetc(fp))!=eof)

putchar(ch);

fclose(fp);

}檔案結尾,通過判斷 eof

//fwrite 的使用

使陣列或結構體等型別可以進行一次性讀寫

#include #include main()

stu;

if((fp1=fopen("test.txt","wb"))==null)

for( i=0;i<2;i++)

fclose(fp1);}//

fread 的使用

#include #include main()

stu;

if((fp1=fopen("test.txt","rb"))==null)

printf("讀取檔案的內容如下:\n");

for (i=0;i<2;i++)

fclose(fp1);}//

fprintf , fscanf, putw , getw , rewind , fseek 函式

這些函式的話我就不演示了 ,

這些函式基本都一對來使用,例如 fputc 和 fgetc 一起來用.

建立資料夾的例子:
#include #include int status;

int main(void)

status = mkdir("/mnt/mmcblk0/myfrist", s_irwxu | s_irwxg | s_iroth | s_ixoth);//如果沒有這個資料夾,就建立乙個

}

linux下關於檔案許可權的控制

1.為什麼需要檔案許可權的存在?給檔案加上許可權,可有效對檔案進行保護,防止對檔案的惡意篡改。2.檢視檔案許可權的命令 方式一 ls l 檔名 方式二 ls ld 檔案路徑 3.關於許可權的理解 1 檔案 rw r r 1 root root 0 aug 15 04 58 day03 各引數解釋如下...

Linux下關於docker的一切操作

安裝dokcer 關於容器和映象的區別困惑鏈結 新增鏈結描述 這裡以nginx為例,前提已安裝好nginx映象 我們可以用同乙個映象啟動多個docker容器,這些容器啟動後都是活動的,彼此還是相互隔離的。我們對其中乙個容器所做的變更只會侷限於那個容器本身 docker run name nginx ...

Linux下關於時間的函式

標頭檔案 includestruct timeval 其中tv sec是由凌晨開始算起的秒數,tv usec則是微秒 10e 6 second struct timezone tv minuteswest是格林威治時間往西方的時差,tv dsttime則是時間的修正方式。struct timespe...