判斷文件訪問權限
頭文件 <io.h>
int _access(const char *path,int mode );
int _waccess(const wchar_t *path,int mode );
返回0成功,-1 失敗
mode:
00 只檢查文件是否存在 F_OK
01 是否有執行權限 X_OK
02 寫權限 W_OK
04 讀權限 R_OK
06 讀寫權限 W_OK|R_OK
讀寫文件
頭文件<stdio.h>
//fsopen()文件共享,fopen_s()直接返回錯誤碼,但不適用共享模式
打開文件
//獲取文件指針
FILE *pFile = fopen("1.txt", //打開文件的名稱,絕對路徑或者相對路徑
"w"); // 文件打開方式 如果原來有內容也會銷燬
向文件寫數據
fwrite ("hello", //要輸入的文字
1,//文字每一項的大小,這裏是字符型的就設置爲1,如果是漢字就設置爲4
strlen("hello"), //單元個數 我們也可以直接寫5
pFile //我們剛剛獲得到的文件指針
);
關閉文件
fclose(pFile); //告訴系統我們文件寫完了數據更新,但是我們要要重新打開才能在寫
刷新緩存,將緩存中的數據寫入文件
fflush(pFile); //數據刷新 數據立即更新
讀文件流程
FILE *pFile=fopen("1.txt","r"); //獲取文件的指針
char *pBuf; //定義文件指針
fseek(pFile,0,SEEK_END); //把指針移動到文件的結尾 ,獲取文件長度
int len=ftell(pFile); //獲取文件長度
pBuf=new char[len+1]; //定義數組長度
rewind(pFile); //把指針移動到文件開頭 因爲我們一開始把指針移動到結尾,如果不移動回來 會出錯
fread(pBuf,1,len,pFile); //讀文件
pBuf[len]=0; //把讀到的文件最後一位 寫爲0 要不然系統會一直尋找到0後才結束
MessageBox(pBuf); //顯示讀到的數據
fclose(pFile); // 關閉文件
刪除文件
remove()函數用於刪除指定的文件,其原型如下:
int remove(char * filename);
成功返回 0
文件或目錄重命名
int rename(const char *old_filename, const char *new_filename)
如果成功,則返回零。如果錯誤,則返回 -1,並設置 errno。
說明:
重命名文件:
如果newname指定的文件存在,則會被刪除。
如果newname與oldname不在一個目錄下,則相當於移動文件。
重命名目錄:
如果oldname和oldname都爲目錄,則重命名目錄。
如果newname指定的目錄存在且爲空目錄,則先將newname刪除。
對於newname和oldname兩個目錄,調用進程必須有寫權限。
重命名目錄時,newname不能包含oldname作爲其路徑前綴。例如,不能將/usr更名爲/usr/foo/testdir,因爲老名字( /usr/foo)是新名字的路徑前綴,因而不能將其刪除。
創建文件類型參數
“rt” 只讀打開一個文本文件,只允許讀數據
“wt” 只寫打開或建立一個文本文件,只允許寫數據
“at” 追加打開一個文本文件,並在文件末尾寫數據
“rb” 只讀打開一個二進制文件,只允許讀數據
“wb” 只寫打開或建立一個二進制文件,只允許寫數據
“ab” 追加打開一個二進制文件,並在文件末尾寫數據
“rt+” 讀寫打開一個文本文件,允許讀和寫
“wt+” 讀寫打開或建立一個文本文件,允許讀寫
“at+” 讀寫打開一個文本文件,允許讀,或在文件末追加數據
“rb+” 讀寫打開一個二進制文件,允許讀和寫
“wb+” 讀寫打開或建立一個二進制文件,允許讀和寫
“ab+” 讀寫打開一個二進制文件,允許讀,或在文件末追加數據
r(read): 讀
w(write): 寫
a(append): 追加
t(text): 文本文件,可省略不寫
b(banary): 二進制文件
+: 讀和寫
總結
程序退出
Exit()函數返回0,表示正確推出,其他參數錯誤退出,返回到操作系統