_creat, _wcreat

提供: RAD Studio
移動先: 案内検索

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 のみ