一、文件打开函数概述
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