_sopen、_wsopen

共有のファイルを開きます。これらの関数のセキュリティを強化したバージョンについては、「_sopen_s、_wsopen_s」を参照してください。

int _sopen(
   const char *filename,
   int oflag,
   int shflag [,
   int pmode ] 
);
int _wsopen(
   const wchar_t *filename,
   int oflag,
   int shflag [,
   int pmode ] 
);

パラメーター

  • filename
    ファイル名。

  • oflag
    許可される操作の型。

  • shflag
    許可される共有の型。

  • pmode
    アクセス許可の設定。

戻り値

これらの関数は開いているファイルへのファイル記述子を返します。

filename または oflag が NULL のポインターであるかまたは oflagshflag の値が有効範囲内にない場合無効なパラメーター ハンドラーが パラメーターの検証 に説明されているように開始されます。実行の継続が許可された場合これらの関数は -1 を返し次の値の 1 に errno を設定します。

  • EACCES
    指定したディレクトリ パスはファイルが読み取り専用ですがが表示されます。書き込み操作としました。

  • EEXIST
    _O_CREAT と _O_EXCL フラグが指定されましたがfilename は既に存在します。

  • EINVAL
    無効な oflag または shflag の引数。

  • EMFILE
    使用できるこれ以上のファイル記述子。

  • ENOENT
    検索またはファイル パス。

リターン コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。

解説

_sopen の関数は filename で指定されたファイルを開き共有読み取りまたは書き込みに oflag と shflag の定義に従ってファイルを準備します。_wsopen 関数は、_sopen 関数のワイド文字バージョンです。_wsopen 関数の引数 filename は、ワイド文字列です。それ以外では、_wsopen と _sopen の動作は同じです。

汎用テキスト ルーチンのマップ

Tchar.h のルーチン

_UNICODE および _MBCS が未定義の場合

_MBCS が定義されている場合

_UNICODE が定義されている場合

_tsopen

_sopen

_sopen

_wsopen

整数式 oflag は次のマニフェスト定数の一つ以上を組み合わせてファイルで定義されて Fcntl.h 作成されます。複数の引数が定数 oflag を作成した場合ビットごとの OR 演算子で結合されます。 | ).

  • _O_APPEND
    すべての書き込み操作の前にファイルの末尾にファイル ポインターを移動します。

  • _O_BINARY
    バイナリ (無変換) モードでファイルを開きます。(バイナリ モードの詳細についてはfopen を参照してください)。

  • _O_CREAT
    書き込み用に新しいファイルを作成し開きます。filename で指定されたファイルがある場合は影響しません。pmode の引数は _O_CREAT が指定されている場合に必要です。

  • _O_CREAT| _O_SHORT_LIVED
    一時できればディスクにフラッシュしないためファイルを作成します。pmode の引数は _O_CREAT が指定されている場合に必要です。

  • _O_CREAT| _O_TEMPORARY
    ファイルを一時ファイルと作成します。; ファイルが最後のファイル記述子が閉じられるとファイルは削除されます。pmode の引数は _O_CREAT が指定されている場合に必要です。

  • _O_CREAT| _O_EXCL
    filename で指定されたファイルがある場合はエラー値を返します。_O_CREAT に対して使用した場合にのみ適用されます。

  • _O_NOINHERIT
    共有ファイル記述子を作成しなくて済みます。

  • _O_RANDOM
    ディスクから主にランダム アクセスを指定します。

  • _O_RDONLY
    読み取り専用ファイルを開きます ; _O_RDWR または _O_WRONLY で指定することはできません。

  • _O_RDWR
    読み取りと書き込みの両方のモードでファイルを開く ; _O_RDONLY または _O_WRONLY で指定することはできません。

  • _O_SEQUENTIAL
    ディスクから主に順次アクセスを指定します。

  • _O_TEXT
    テキスト (変換) モードでファイルを開きます。(詳細についてはテキストとバイナリ モードのファイル I/Ofopen を参照してください)。

  • _O_TRUNC
    ファイルを開き長さだけ切り詰めますに ; ファイルが書き込みのアクセス許可が必要です。_O_RDONLY でこのフラグを指定することはできません。_O_TRUNC は _O_CREAT を開くと既存のファイルを使用するか新しいファイルを作成します。

    [!メモ]

    _O_TRUNC フラグを指定したファイルの内容を破棄します。

  • _O_WRONLY
    書き込み用にファイルを開きます ; _O_RDONLY または _O_RDWR で指定することはできません。

  • _O_U16TEXT
    Unicode UTF-16 モードでファイルを開きます。

  • _O_U8TEXT
    Unicode UTF-8 モードでファイルを開きます。

  • _O_WTEXT
    Unicode モードでファイルを開きます。

ファイル アクセス モードを指定するには_O_RDONLY_O_RDWRまたは _O_WRONLY を指定する必要があります。アクセス モードの既定値はありません。

_sopen_O_WRONLY|_O_APPEND (モードを追加します。_O_WTEXT) と_O_U16TEXTまたは _O_U8TEXT 呼び出すと最初に読み取ることのファイルを開くと記述BOM をことを書き込み用だけを再開します。読み取りと書き込みのファイルを開くことができない場合は書き込み用にファイルを開きUnicode モードの設定の既定値を使用します。

引数 shflag は次のマニフェスト定数の 1 文字で構成される定数式 Share.h で定義されます。

  • _SH_DENYRW
    ファイルの読み取りと書き込みを禁止アクセス。

  • _SH_DENYWR
    ファイルへの書き込みアクセスを禁止します。

  • _SH_DENYRD
    ファイルへの読み取りアクセスを拒否します。

  • _SH_DENYNO
    読み取りおよび書き込みアクセス許可。

pmode の引数ではが 1 で _O_CREAT を指定する場合にのみ必要です。ファイルが存在しない場合はpmode は新しいファイルを最初に開いたときに設定されているファイル アクセス許可の設定を指定します。それ pmode は無視されます。pmode はマニフェスト定数 _S_IWRITE と _S_IREAD1 のいずれかまたは両方を含む SYS \ Stat.h で定義されている整数式です。定数が両方とも指定するとビットごとの OR 演算子で結合されます。pmode の意味は次のとおりです。

  • _S_IWRITE
    許可される書き込みます。

  • _S_IREAD
    許可される読み取り。

  • _S_IREAD | _S_IWRITE
    許可される読み取りと書き込み。

書き込みアクセス許可を指定しない場合ファイルは読み取り専用です。Windows オペレーティング システムではすべてのファイルを読み取ることができます。; 書き込み専用アクセス許可を与えることはできません。したがって_S_IWRITE モードと _S_IREAD | _S_IWRITE は同じです。

_sopen は pmode にアクセス許可を設定する前に現在のファイルのアクセス許可マスクを適用します (_umask を参照してください。

必要条件

ルーチン

必須ヘッダー

オプション ヘッダー

_sopen

<io.h>

<fcntl.h> <sys/types.h> <sys/stat.h><share.h>

_wsopen

<io.h> または <wchar.h>

<fcntl.h> <sys/types.h> <sys/stat.h><share.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

_locking の例を参照してください。

同等の .NET Framework 関数

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

関連項目

下位入出力

_close

_creat、_wcreat

fopen、_wfopen

_fsopen、_wfsopen

_open、_wopen