open,_wopen

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

io.h:インデックス への移動


ヘッダーファイル

io.h, fcntl.h

カテゴリ

入出力ルーチン

プロトタイプ

int open(const char *path, int access [, unsigned mode]);

int _wopen(const wchar_t *path, int access [, unsigned mode]);

説明

読み取りまたは書き込みを行うためにファイルを開きます。

open は,path で指定されたファイルを開き,access の値で指定された読み取りまたは書き込みの準備を行います。

特定のモードでファイルを作成するには,グローバル変数 _fmode に代入するか,O_CREAT および O_TRUNC オプションと必要な変換モードを OR で組み合わせて open を呼び出します。

open("XMP",O_CREAT|O_TRUNC|O_BINARY,S_IREAD)

これは,バイナリモードで読み出し専用のファイルを XMP という名前で作成し,このファイルがすでに存在する場合は,その長さを 0 バイトに切り捨てます。

open の場合,access は,次のリストのビットフラグを OR で組み合わせて指定されます。最初のリストからは,フラグを 1 つ(だけ)使用する必要があります。残りのフラグは,任意の組み合わせを使用できます。

これらのシンボル定数は,fcntl.h で定義されています。

O_RDONLY

読み出し専用で開きます。

O_WRONLY

書き込み専用で開きます。

O_RDWR

読み書き用に開きます。



O_NDELAY

使用されません。UNIX 互換用。

O_APPEND

これが設定されている場合は,書き込みのたびにファイルポインタがファイルの末尾に設定されます。

O_CREAT

ファイルが存在する場合,このフラグの効果はありません。ファイルが存在しない場合は,ファイルが作成され,chmod と同様に mode のビットを使ってファイル属性が設定されます。

O_TRUNC

ファイルが存在する場合は,長さが 0 に切り捨てられます。ファイル属性は変更されません。

O_EXCL

常に O_CREAT と組み合わせて使用されます。ファイルがすでに存在する場合は,エラーが返されます。

O_BINARY

明示的にバイナリモードでファイルを開くことを指定できます。

O_TEXT

明示的にテキストモードでファイルを開くことを指定できます。



O_BINARY も O_TEXT も指定されていない場合は,グローバル変数 _fmode で設定されている変換モードでファイルが開かれます。

access の指定で O_CREAT フラグを使用する場合は,sys\stat.h で定義されている次のシンボル定数を mode 引数として open に渡す必要があります。

S_IWRITE

書き込み許可

S_IREAD

読み取り許可

S_IREAD|S_IWRITE

読み書き許可



戻り値

成功した場合,open は,負でない整数(ファイルハンドル)を返します。(ファイル内の現在の位置を指定する)ファイルポインタは,ファイルの先頭に設定されます。

エラーが発生した場合は -1 を返し,グローバル変数 errno に次のいずれかの値が設定されます。

EACCES

アクセスが許可されない

EINVACC

無効なアクセスコード

EMFILE

オープンファイルが多すぎる

ENOENT

指定されたファイルまたはディレクトリがない





 #include <string.h>
 #include <stdio.h>
 #include <fcntl.h>
 #include <io.h>
 int main(void)
 {
    int handle;
    char msg[] = "Hello world";
    if ((handle = open("TEST.$$$", O_CREAT | O_TEXT)) == -1)
    {
       perror("Error:");
       return 1;
    }
    write(handle, msg, strlen(msg));
    close(handle);
    return 0;
 }



移植性



POSIX Win32 ANSI C ANSI C++

open

+

+

_wopen

NT のみ