1. 程式人生 > >VC++ 檔案讀寫總結

VC++ 檔案讀寫總結

一、檔案開啟函式概述

1. _open:

_open 函式將開啟由 filename 指定的檔案並使其做好讀寫準備

2._sopen:

_sopen 函式將開啟由 filename 指定的檔案並使該檔案做好共享的讀寫準備

3.fopen:

fopen 函式開啟 filename指定的檔案(SH_DENYNO即共享讀寫)

4.fopen_s:

fopen_s 函式開啟 filename指定的檔案(_SH_SECURE即在只讀模式下才共享讀,其他時不共享)

5.freopen:

freopen函式將關閉當前與相關聯的檔案stream,並重新指定stream到指定的檔案path 

6._fsopen:

_fsopen 函式以流的形式開啟由 filename 指定的檔案並使該檔案做好準備以進行後續的共享讀寫

7._fdopen:

_fdopen 函式將 I/O 流與 fd 標識的檔案相關聯,從而允許對為低級別 I/O 而開啟的檔案進行緩衝和格式化。

二、檔案開啟函式

1. _open:

(1)函式原型:int _open(  const char *filename,  int oflag [,  int pmode]   ); 

(2)功能:_open 函式將開啟由 filename 指定的檔案並使其做好讀寫準備

(3)引數:filename 檔名;oflag 允許的操作型別;pmode許可權模式

(4)返回值:返回值 -1 指示錯誤

2._sopen:

(1)函式原型:int _sopen(  const char *filename,  int oflag,  int shflag [,  int pmode ]  );

(2)功能:_sopen 函式將開啟由 filename 指定的檔案並使該檔案做好共享的讀寫準備,如oflagshflag 所定義。

(3)引數:filename 檔名;oflag 允許的操作型別;shflag 允許的共享型別;pmode許可權模式

(4)返回值:返回值 -1 指示錯誤

3.fopen:

(1)函式原型:FILE *fopen(   const char *filename,  const char *mode  );

(2)功能:fopen 函式開啟 filename指定的檔案。 預設情況下,使用 ANSI 內碼表 (CP_ACP) 解釋窄filename 字串。

(3)引數:filename 檔名;mode 啟用的訪問型別

(4)返回值:一個 null 指標值指示錯誤

4.fopen_s:

(1)函式原型:errno_t fopen_s(  FILE** pFile,  const char *filename,  const char *mode  ); 

(2)功能:fopen_s 函式開啟 filename指定的檔案。 fopen_s共享模式為_SH_SECURE即在只讀模式下才共享讀,其他時不共享。

(3)引數:pFile指向檔案指標的指標,檔案指標將接收指向已開啟檔案的指標。filename 檔名;mode 啟用的訪問型別

(4)返回值:如果成功,則為零;如果失敗,則為錯誤程式碼。

5.freopen:

(1)函式原型:FILE *freopen(  const char *path,  const char *mode,  FILE *stream  ); 

(2)功能:freopen函式將關閉當前與相關聯的檔案stream,並重新指定stream到指定的檔案path 

(3)引數:path 新檔案的路徑;mode 允許的訪問型別;stream指向FILE 結構的指標

(4)返回值:返回值 NULL指示錯誤

6._fsopen:

(1)函式原型:FILE *_fsopen(  const char *filename,  const char *mode,  int shflag  );

(2)功能_fsopen 函式以流的形式開啟由 filename 指定的檔案並使該檔案做好準備以進行後續的共享讀寫

(3)引數:filename 要開啟的檔案的名稱。mode 允許的訪問型別。shflag 允許的共享型別。

(4)返回值:返回值 NULL指示錯誤

7._fdopen:

(1)函式原型:FILE *_fdopen(   int fd,  const char *mode  );

(2)功能:_fdopen 函式將 I/O 流與 fd 標識的檔案相關聯,從而允許對為低級別 I/O 而開啟的檔案進行緩衝和格式化

(3)引數:fd 開啟檔案的檔案描述符;mode檔案訪問的型別

(4)返回值:返回值 NULL指示錯誤

三、函式區別