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;
status = mkdir("/mnt/mmcblk0/myfrist", s_irwxu | s_irwxg | s_iroth | s_ixoth);//如果沒有這個資料夾,就建立乙個int main(void)
}
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...