一、檔案打開函數概述
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 訓示錯誤
(5)詳情:https://msdn.microsoft.com/zh-cn/magazine/z0kc8e3z.aspx
2._sopen:
(1)函數原型:int _sopen( const char *filename, int oflag, int shflag [, int pmode ] );
(2)功能:_sopen 函數将打開由
filename
指定的檔案并使該檔案做好共享的讀寫準備,如
oflag
和
shflag
所定義。
(3)參數:filename 檔案名;oflag 允許的操作類型;shflag 允許的共享類型;pmode權限模式
(4)傳回值:傳回值 -1 訓示錯誤
(5)詳情:https://msdn.microsoft.com/zh-cn/magazine/w7sa2b22.aspx
3.fopen:
(1)函數原型:FILE *fopen( const char *filename, const char *mode );
(2)功能:fopen 函數打開
filename
指定的檔案。 預設情況下,使用 ANSI 代碼頁 (CP_ACP) 解釋窄
filename
字元串。
(3)參數:filename 檔案名;mode 啟用的通路類型
(4)傳回值:一個 null 指針值訓示錯誤
(5)詳情:https://msdn.microsoft.com/zh-cn/library/yeby3zcb.aspx
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)詳情:https://msdn.microsoft.com/zh-cn/library/z5hh6ee9.aspx
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訓示錯誤
(5)詳情:https://msdn.microsoft.com/zh-cn/magazine/wk2h68td.aspx
6._fsopen:
(1)函數原型:FILE *_fsopen( const char *filename, const char *mode, int shflag );
(2)功能_fsopen 函數以流的形式打開由
filename
指定的檔案并使該檔案做好準備以進行後續的共享讀寫
(3)參數:
filename
要打開的檔案的名稱。
mode
允許的通路類型。
shflag
允許的共享類型。
(4)傳回值:傳回值 NULL訓示錯誤
(5)詳情:https://msdn.microsoft.com/zh-cn/magazine/8f30b0db(de-de).aspx
7._fdopen:
(1)函數原型:FILE *_fdopen( int fd, const char *mode );
(2)功能:_fdopen 函數将 I/O 流與
fd
辨別的檔案相關聯,進而允許對為低級别 I/O 而打開的檔案進行緩沖和格式化
(3)參數:fd 打開檔案的檔案描述符;mode檔案通路的類型
(4)傳回值:傳回值 NULL訓示錯誤
(5)詳情:https://msdn.microsoft.com/zh-cn/magazine/dye30d82.aspx
三、函數差別
1.參考:http://blog.csdn.net/victor1960/article/details/44460567
http://stackoverflow.com/questions/9738960/what-is-difference-between-sh-secure-and-sh-denywr