_creat, _wcreat
io.h:インデックス への移動
ヘッダーファイル
io.h
カテゴリ
入出力ルーチン
プロトタイプ
int creat(const char *path, int amode);
int _wcreat(const wchar_t *path, int amode);
説明
新しいファイルを作成するか,既存のファイルを上書きします。
メモ: パス内の円記号は「\\」にする必要があります。
creat は,新しいファイルを作成するか,path で指定された既存のファイルを書き直すための準備を行います。amode は,新しく作成したファイルにのみ適用されます。
creat によって作成されるファイルは,常にグローバル変数 _fmode(O_TEXT または O_BINARY)で指定される変換モードで作成されます。
ファイルが存在し,書き込み属性が設定されている場合,creat は,ファイルの長さを 0 バイトに切り捨てますが,ファイル属性は変更しません。既存のファイルに読み出し専用属性が設定されている場合,create の呼び出しは失敗し,ファイルは変更されません。
creat は,アクセスモードワード amode の S_IWRITE ビットだけを調べます。このビットが 1 の場合,このファイルは書き込み可能です。このビットが 0 の場合は,読み出し専用としてマークされています。他のオペレーティングシステム属性は 0 に設定されます。
amode には,次のいずれかの値(sys\stat.h で定義)を指定できます。
S_IWRITE |
書き込み許可 |
S_IREAD |
読み取り許可 |
S_IREAD / S_IWRITE |
読み出しと書き込みの許可(書き込み許可は読み取り許可も含む) |
戻り値
成功した場合,_creat は,新しいファイルハンドルとして負でない整数を返します。そうでない場合は,-1 を返します。
エラーの場合は,グローバル変数 errno に次のいずれかの値が設定されます。
EACCES |
アクセスが許可されない |
ENOENT |
パスまたはファイル名が見つからない |
EMFILE |
オープンファイルが多すぎる |
例
#include <sys\stat.h>
#include <string.h>
#include <fcntl.h>
#include <io.h>
int main(void)
{
int handle;
char buf[11] = "0123456789";
/* デフォルトのファイルモードをテキストからバイナリに変更します */
_fmode = O_BINARY;
/* 読み書き用のバイナリファイルを作成します */
handle = creat("DUMMY.FIL", S_IREAD |S_IWRITE);
/* ファイルに 10 バイトを書き込みます */
write(handle, buf, strlen(buf));
/* ファイルを閉じます */
close(handle);
return 0;
}
移植性
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
creat |
+ |
+ |
||
_wcreat |
NT のみ |