VC++ファイル読み書きまとめ
一、ファイルオープン関数の概要
1. _open:
2._sopen:
_sopen関数は
3.fopen:
fopen関数は
4.fopen_s:
fopen_s関数は、
5.freopen:
freopen関数は、現在関連付けられているファイル
6._fsopen:
_fsopen関数は、
7._fdopen:
_fdopen関数は、I/Oストリームを
二、ファイルオープン関数
1. _open:
(1)関数プロトタイプ:int_open(const char*filename,int oflag[,int pmode]);
(2)機能:_open関数は、
(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関数は、
(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関数は、
(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関数は、
(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関数は、現在関連付けられているファイル
(3)パラメータ:path新しいファイルのパス;modeが許可するアクセスタイプ;streamは
(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関数
(3)パラメータ:
(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ストリームを
(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
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