fopen_s
stdio.h:インデックス への移動
ヘッダー ファイル
stdio.h
カテゴリ
ファイル アクセス関数
プロトタイプ
errno_t fopen_s(FILE * restrict * restrict streamptr, const char * restrict filename, const char * restrict mode);
説明
ストリームを開きます。
fopen_s は、filename で指定されたファイルを開き、それにストリームを関連付けます。fopen は、後続の操作でストリームを識別するためのポインタを返します。
fopen の呼び出しで使用されるモード文字列は、以下の値のいずれかです。
| 値 | 説明 |
|---|---|
|
uw |
ファイルを長さゼロに切り詰めるか、デフォルトのアクセス権で書き込み専用にテキスト ファイルを作成します。 |
|
ua |
追加書き込みします。デフォルトのアクセス権でファイル終端(EOF)への書き込み専用にテキスト ファイルを開くまたは作成します。 |
|
uwb |
ファイルを長さゼロに切り詰めるか、デフォルトのアクセス権で書き込み専用にバイナリ ファイルを作成します。 |
|
uab |
追加書き込みします。デフォルトのアクセス権でファイル終端(EOF)への書き込み専用にバイナリ ファイルを開くまたは作成します。 |
|
uw+ |
ファイルを長さゼロに切り詰めるか、デフォルトのアクセス権で更新専用にテキスト ファイルを作成します。 |
|
ua+ |
追加書き込みします。デフォルトのアクセス権で更新用およびファイル終端(EOF)への書き込み用にテキスト ファイルを開くまたは作成します。 |
|
uw+b または uwb+ |
ファイルを長さゼロに切り詰めるか、デフォルトのアクセス権で更新専用にバイナリ ファイルを作成します。 |
|
ua+b または uab+ |
追加書き込みします。デフォルトのアクセス権で更新用およびファイル終端(EOF)への書き込み用にバイナリ ファイルを開くまたは作成します。 |
オペレーティング システムでサポートされている場合、書き込み専用に開かれたファイルは、ファイルへの同時書き込みを避けるため共有アクセスされません。 さらに、オペレーティング システムでサポートされている場合、u 以外で始まるモード文字列のファイルは、所有者がプログラムの実行元のユーザーに設定され、他のユーザーには使用できません。 モード文字列が u で始まる場合は、ファイルにはデフォルトのファイル アクセス権が設定されます。
ファイルが正常に開かれた場合は、そのファイルのファイル ポインタ値が streamptr パラメータに設定され、そうでない場合は NULL ポインタが streamptr に設定されます。
戻り値
正常に終了した場合、fopen_s はゼロを返し、そうでない場合はゼロでない値を返します。
例
/* Program to create backup of a file */
#include <stdio.h>
int main(void)
{
FILE *in, *out;
in = new FILE;
if (fopen_s(&in, "TESTFILE.DAT", "rt")){
fprintf(stderr, "Cannot open input file.\n");
return 1;
}
if (fopen_s(&out, "TESTFILE.BAK", "wt")){
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
while (!feof(in)){
fputc(fgetc(in), out);
}
fclose(in);
fclose(out);
return 0;
}
移植性
| POSIX | Win32 | ANSI C | ANSI C++ | |
|---|---|---|---|---|
|
fopen_s |
+ |
+ |
+ |
+ |