_creat
, _wcreat
新しいファイルを作成します。 _creat
と_wcreat
非推奨になりました。代わりに使用_sopen_s
_wsopen_s
してください。
構文
int _creat(
const char *filename,
int pmode
);
int _wcreat(
const wchar_t *filename,
int pmode
);
パラメーター
filename
新しいファイルの名前。
pmode
アクセス許可の設定。
戻り値
これらの関数は正常に実行された場合、作成されたファイルにファイル記述子を返します。 それ以外の場合、関数は -1 を返し、次の表に示すように設定 errno
します。
errno 値 |
説明 |
---|---|
EACCES |
filename は、既存の読み取り専用ファイルを指定するか、ファイルの代わりにディレクトリを指定します。 |
EMFILE |
ファイル記述子をこれ以上使用できません。 |
ENOENT |
指定されたファイルが見つかりませんでした。 |
その場合filename
、「NULL
パラメーターの検証」で説明されているように、これらの関数は無効なパラメーター ハンドラーを呼び出します。 実行の継続が許可された場合、これらの関数は errno
を EINVAL
に設定し、-1 を返します。
これらのリターン コードとその他のリターン コードについては、「errno
、_doserrno
、_sys_errlist
、_sys_nerr
」を参照してください。
解説
_creat
関数は新しいファイルを作成するか、既存のファイルを開いて切り詰めます。 _wcreat
関数は、 _creat
関数のワイド文字バージョンです。 filename
関数の引数 _wcreat
は、ワイド文字列です。 それ以外では、_wcreat
と _creat
の動作は同じです。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 これを変更するには、「CRT でのグローバル状態」を参照してください。
汎用テキスト ルーチンのマップ
Tchar.h のルーチン | _UNICODE と _MBCS が定義されていない |
_MBCS が定義されている |
_UNICODE が定義されている |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
指定した filename
ファイルが存在しない場合は、指定されたアクセス許可設定で新しいファイルが作成され、書き込み用に開かれます。 ファイルが既に存在し、そのアクセス許可設定で書き込みが許可される場合、_creat
はファイルを長さ 0 に切り詰め、以前のコンテンツを破棄して開きます。ファイルに書き込むことができます。 アクセス許可設定 pmode
は、新しく作成されたファイルにのみ適用されます。 新しいファイルは、最初に閉じた後に、指定されたアクセス許可設定を受け取ります。 整数式 pmode
には、 に定義されている、マニフェスト定数 _S_IWRITE
と _S_IREAD
に一方または両方が含まれます。 両方の定数が指定されると、ビットごとのまたは演算子 ( |
) で結合されます。 pmode
パラメーターには次のいずれかの値を設定されます。
Value | 定義 |
---|---|
_S_IWRITE |
書き込みが許可されます。 |
_S_IREAD |
読み取りが許可されます。 |
_S_IREAD | _S_IWRITE |
読み取りと書き込みが許可されます。 |
書き込みアクセス許可が与えられていない場合、ファイルは読み取り専用です。 すべてのファイルは常に読み取り可能です。書き込み専用のアクセス許可を付与することはできません。 _S_IWRITE
モードと _S_IREAD | _S_IWRITE
モードは同じになります。 使用して_creat
開いたファイルは、常に互換モードで開かれます (参照_sopen
) と ._SH_DENYNO
_creat
は、アクセス許可を設定する前に pmode
、現在のファイル権限マスクを適用します (参照 _umask
)。 _creat
は主に以前のライブラリとの互換性のための関数です。 oflag
パラメーターに _O_CREAT
と _O_TRUNC
を指定して _open
を呼び出すことは _creat
と同じであり、新しいコードの場合に推奨されます。
必要条件
ルーチンによって返される値 | 必須ヘッダー | オプション ヘッダー |
---|---|---|
_creat |
<io.h> | <sys/types.h>、<sys/stat.h>、<errno.h> |
_wcreat |
<io.h> または <wchar.h> | <sys/types.h>、<sys/stat.h>、<errno.h> |
互換性の詳細については、「 Compatibility」を参照してください。
例
// crt_creat.c
// compile with: /W3
// This program uses _creat to create
// the file (or truncate the existing file)
// named data and open it for writing.
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int fh;
fh = _creat( "data", _S_IREAD | _S_IWRITE ); // C4996
// Note: _creat is deprecated; use _sopen_s instead
if( fh == -1 )
perror( "Couldn't create data file" );
else
{
printf( "Created data file.\n" );
_close( fh );
}
}
Created data file.
関連項目
低レベル I/O
_chmod
, _wchmod
_chsize
_close
_dup
, _dup2
_open
, _wopen
_sopen
, _wsopen
_umask
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示