creat - 新しいファイルの作成

【書式】

#include <sys/types.h>

#include <sys/stat.h>

#include <io.h>

int creat(const char *path, int mode);

【解説】

creat() はpathで指定されたファイルをアクセス許可mode(umask(3)参照)で

作成し、書き込みモードでオープンします。

すでにpathで示されるファイルが存在するときにはファイル長は0 となり、

そのファイルの内容は失われます。

creat(path, mode);

open(path, O_CREAT | O_TRUNC | O_WRONLY, mode);

と等価です。

modeはpathで指定したファイルが存在しないときに使用され、ファイルの保

護モードを指定します。<sys/stat.h>で定義されている定数を使って次のよ

うに指定します。

S_IWRITE

書き込み可

S_IREAD

読み出し可(リードオンリーファイルを作ります)

S_IREAD | S_IWRITE

読み書き可

DOS窓 ではライトオンリーのファイルは作成できませんので、 S_IWRITEと

S_IREAD | S_IWRITEとは同じ意味となり、いずれもリードライト可能なファ

イルになります。

modeの値は実際に使用される前にumask(3)で設定されている値でマスクされ

ます。詳しくはumask(3)を参照してください。

【リターン値】

正常終了するとファイルハンドル(負でない整数値)を返します。エラーを検

出すると-1を返し、エラーの種類をerrnoにセットします。

【エラー】

EACCES

アクセスが拒否されました( リードオンリーのファイルやディレクトリ

だった)

EMFILE

オープンされているファイルの数が多すぎます

ENOENT

pathの先行するパス名が存在しません

【可搬性】

UNIX, DOS窓

【参照】

open(3), close(3), umask(3)

【バグ】

unixのman(マニュアル)では「creat()はopen()によってもはや『時代遅れ』

となった」 とされています。したがって、creat()のかわりにopen()を使用

するのが望ましいでしょう。

【copyright (c) 安江正樹@東海大学理学部物理学科】