FreeBSD 日本語マニュアル検索 (jman/japropos/jwhatis)


日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。

4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)

13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | ライブラリ | 書式 | 解説 | 戻り値 | エラー | 関連項目 | 規格 | 歴史 | バグ
OPEN(2)                FreeBSD システムコールマニュアル                OPEN(2)

名称
     open, openat -- 読み込み、書み込みまたは実行のためにファイルをオープンす
     るか、または作成する

ライブラリ
     標準 C ライブラリ (libc, -lc)

書式
     #include <fcntl.h>

     int
     open(const char *path, int flags, ...);

     int
     openat(int fd, const char *path, int flags, ...);

解説
     path によって指定されたファイル名は、引数 flags フラグによって指定される
     ように実行、または読み込みおよび書き込みのいずれかのためにオープンされ、
     ファイル記述子は、呼び出しているプロセスに返されます。flags 引数は、ファ
     イルが存在しないならば、(O_CREAT フラグを指定することによって) ファイルが
     作成されることを示します。この場合に、open() と openat() は、追加の引数
     mode_t mode を必要とし、ファイルは、chmod(2) で説明されるように、そしてプ
     ロセスの umask 値 (umask(2) 参照) によって修正されるモード mode で作成さ
     れます。

     openat() 関数は、path が相対的なパスを指定する場合を除いて、open() 関数と
     同等です。openat() と相対的な path について、オープンされるファイルは、カ
     レントワーキングディレクトリの代わりにファイル記述子 fd に関連するディレ
     クトリに相対的に決定されます。flag パラメータとオプションの 4 番目のパラ
     メータは、ちょうど open() のパラメータに対応しています。openat() が、fd
     パラメータの特別な値 AT_FDCWD を渡されるなら、カレントワーキングディレク
     トリが、使用され、振る舞いは、open() への呼び出しと同じです。

     openat() が絶対 path で呼び出されるとき、fd 引数を無視します。

     capsicum(4) ケーパビリティモードで、open() は、許可されません。openat()
     への path 引数は、ファイル記述子 fd と完全に相対的でなければなりません。
     path は、絶対パスではならず、パスの解決が、fd で始まるディレクトリの階層
     構造をエスケープして、".." 構成要素を含んではなりません。さらに、path の
     シンボリックリンクは、ターゲットの絶対パス、またはエスケープしている ".."
     構成要素を含んでいるかもしれません。fd は、AT_FDCWD であってはなりませ
     ん。

     vfs.lookup_cap_dotdot sysctl(3) MIB が 0 に設定されているなら、ケーパビリ
     ティモードで使用されるパスの ".." 構成要素は、完全に無効にされます。

     指定されるフラグは、論理和 (OR) されている次の値によって形成されます:

           O_RDONLY        読み込みのみのためにオープン
           O_WRONLY        書み込みのみのためにオープン
           O_RDWR          読み込みと書み込みのみのためにオープン
           O_EXEC          実行のみのためにオープン
           O_SEARCH        実行のみのためにオープン, O_EXEC のための別名
           O_NONBLOCK      オープンでブロックしません
           O_APPEND        各書み込みで付け加えます
           O_CREAT         ファイルが存在しないなら, 作成する
           O_TRUNC         サイズを 0 に切り詰めます
           O_EXCL          作成するファイルが存在するなら, エラーとなります
           O_SHLOCK        共有ロックを不可分に取得します
           O_EXLOCK        排他的ロックを不可分に取得します
           O_DIRECT        キャッシュの効果を除去するまたは減少します
           O_FSYNC         同期的な書き込み (O_SYNC のための歴史的な同義語)
           O_SYNC          同期的な書き込み
           O_DSYNC         同期的なデータ書き込み
           O_NOFOLLOW      シンボリックリンクをたどりません
           O_NOCTTY        無視します
           O_TTY_INIT      無視します
           O_DIRECTORY     ファイルがディレクトリでないなら, エラーとなります
           O_CLOEXEC       オープン時に FD_CLOEXEC を設定します
           O_VERIFY        ファイルの内容を検証します
           O_RESOLVE_BENEATH       パスの解決は, fd ディレクトリを越えてはいけません

     O_APPEND 設定でファイルをオープンすることによって、ファイルの各書き込み
     は、ファイルの終りに追加されます。O_TRUNC が指定され、ファイルが存在する
     なら、ファイルは、0 の長さに切り詰められます。O_EXCL が O_CREAT とともに
     設定され、すでにファイルが存在するなら、open() は、エラーを返します。これ
     は、簡単な排他的なアクセスロックメカニズムを実装するために使用されます。
     O_EXCL が設定され、パス名の最後の構成要素がシンボリックリンクであるなら、
     open() は、たとえシンボリックリンクが存在しない名前を指していても、失敗し
     ます。O_NONBLOCK フラグが指定され、open() システムコールが、いくつかの理
     由 (例えば、ダイヤルアップ回線でキャリアを待つ) のためにブロックされてい
     るプロセスの結果となるなら、open() は、直ちに返ます。記述子は、その後の操
     作のために非ブロッキングモードのままとなります。

     O_SYNC がマスクで使用されるなら、すべての書き込みは、直ちにそして同時に
     ディスクに書き込みます。O_FSYNC は、O_SYNC.  のための歴史的な同義語です。

     O_DSYNC がマスクで使用されているなら、データを読み込みに必要な全てのデー
     タとメタデータは、同期してディスクに書き込まれますが、ファイルのアクセス
     とタイムスタンプの修正のようなメタデータの変更は、後から書き込まれます。

     O_NOFOLLOW がマスクで使用され、open() に渡されたターゲットファイルがシン
     ボリックリンクであるなら、open() は、失敗します。

     ファイルをオープンするとき、flock(2) セマンティックスがあるロックは、共有
     ロックのために O_SHLOCK または排他的ロックのために O_EXLOCK を設定するこ
     とによって取得することができます。O_CREAT でファイルを作成するなら、ロッ
     クのための要求は、(基本的なファイルシステムがロックをサポートするという条
     件で) 決して失敗しません。

     O_DIRECT は、読み込みと書き込みのキャッシュの効果を最小にするか、または除
     外するために使用されます。システムは、利用者が読み込むか、または書き込む
     データのキャッシュを避けることを試みます。データをキャッシュすることを避
     けることができないなら、データにキャッシュがある影響を最小化します。この
     フラグの使用は、注意して使用されないなら、性能を大幅に減少するかもしれま
     せん。

     O_NOCTTY は、tty デバイスをオープンするとき、OS が制御端末としてこのファ
     イルを割り当てないことを保証するために使用されます。これは、FreeBSD では
     デフォルトですが、POSIX の互換性のために存在しています。open() システム
     コールは、FreeBSD で制御端末に割り当てません。

     O_TTY_INIT は、最初に TTY をオープンするとき、OS が端末属性を復旧すること
     を確実にするために使用されます。これは、FreeBSD ではデフォルトですが、
     POSIX の互換性のために存在しています。TTY に関して open() への初期の呼び
     出しは、常に FreeBSD でのデフォルトの端末属性を復旧します。

     O_DIRECTORY は、結果のファイル記述子がディレクトリを参照することを保証す
     るために使用されます。デバイスノードのように、O_RDONLY でオープンするのが
     危険でもあるファイルを高い特権があるアプリケーションがオープンすることか
     ら防ぐために、このフラグを使用することができます。

     O_CLOEXEC は、新しく返されたファイル記述子のために FD_CLOEXEC フラグを設
     定するために使用されます。

     O_VERIFY は、ファイルの内容が、進行するオープンを許可する前に、確認される
     べきであることをカーネルに示すために使用されます。何を ``verified'' (確認
     する) かの意味の詳細は、特有の実装です。実行時のリンカ (rtld) は、それら
     で操作する前に、共有オブジェクトが確認されたことを保証するために、このフ
     ラグを使用します。

     O_RESOLVE_BENEATH は、指定された相対パスのあらゆる中間構成要素が、開始
     ディレクトリの下のディレクトリ階層構造に存在しないなら、ENOTCAPABLE を返
     します。絶対パスまたは開始ディレクトリの下から一時的にエスケープすること
     さえ許可されません。

     fd が O_SEARCH でオープンされるとき、実行パーミッションは、オープン時に
     チェックされます。fd は、getdirentries(2) のようなあらゆる読み込みの操作
     のために使用されません。この記述子のための主要な使用は、関数の *at() ファ
     ミリのための検索記述子としてです。

     成功するなら、open() は、ファイル記述子と呼ばれる負でない整数を返します。
     失敗すると、-1 を返します。ファイル内の現在の位置をマークするために使用さ
     れるファイルポインタは、ファイルの先頭に設定されます。

     スリープしている devfs(5) からのデバイスノードのオープンがシグナルによっ
     て割り込まれるなら、たとえ SA_RESTART フラグがシグナルのために設定されて
     いても、その呼び出しは、常に EINTR で失敗します。スリープしている FIFO
     (mkfifo(2) 参照) のオープンは、通常どおり再開されます。

     新しいファイルが作成されるとき、それを含んでいるディレクトリのグループが
     与えられます。

     O_CLOEXEC フラグが指定されなかったなら、新しい記述子は、execve(2) システ
     ムコールに渡ってオープンされたままに設定されます。close(2), fcntl(2) と
     O_CLOEXEC の説明を参照してください。

     システムは、1 つのプロセスによって、同時にオープンされるファイル記述子の
     数に制限を課します。getdtablesize(2) システムコールは、現在のシステムの制
     限を返します。

戻り値
     成功すれば、open() と openat() は、ファイル記述子と呼ばれる負でない整数を
     返します。失敗すれば、-1 を返し、エラーを示す値を errno に設定します。

エラー
     指定されるファイルは、次を除いてオープンされます:

     [ENOTDIR]          パス接頭辞の構成要素が、ディレクトリではありません。

     [ENAMETOOLONG]     パス名の構成要素が 255 文字を越えているか、または、全
                        体のパス名が 1023 文字を越えています。

     [ENOENT]           O_CREAT が、設定されず、指定されたファイルが、存在しま
                        せん。

     [ENOENT]           存在しなければならないパス名の構成要素が存在しません。

     [EACCES]           検索パーミッションが、パス接頭辞の構成要素のために拒否
                        されています。

     [EACCES]           (読み込みおよび書き込むのために) 必要なパーミッション
                        が、与えられたフラグのために拒否されています。

     [EACCES]           O_TRUNC が、指定され、書き込みパーミッションが否定され
                        ています。

     [EACCES]           O_CREAT が、指定され、ファイルが、存在せず、それが作成
                        されるディレクトリが、書き込みを許可していません。

     [EPERM]            O_CREAT が指定され、ファイルが存在していなくて、作成さ
                        れることになっているディレクトリには、不変のフラグが設
                        定されています、詳細については、chflags(2) マニュアル
                        ページを参照してください。

     [EPERM]            指定されたファイルには、不変フラグが設定されて、ファイ
                        ルは、変更されています。

     [EPERM]            指定されたファイルには、追加専用フラグが設定され、ファ
                        イルは、変更され、O_TRUNC が指定されるか、または
                        O_APPEND が指定されていません。

     [ELOOP]            パス名を変換するときに、あまりにも多くのシンボリックリ
                        ンクに遭遇しました。

     [EISDIR]           指定されたファイルが、ディレクトリであり、引数が、修正
                        されるように指定しています。

     [EISDIR]           指定されたファイルが、ディレクトリであり、O_DIRECTORY
                        なしでフラグ指定された O_CREAT です。

     [EROFS]            指定されたファイルが、読み込み専用のファイルシステムに
                        あり、ファイルが、修正されようとしています。

     [EROFS]            O_CREAT が指定され、指定されたファイルが読み込み専用の
                        ファイルシステムにあります。

     [EMFILE]           プロセスが、オープンしているファイル記述子のための制限
                        に既に到達しました。

     [ENFILE]           システムのファイルテーブルが、満杯です。

     [EMLINK]           O_NOFOLLOW が、指定され、ターゲットが、シンボリックリ
                        ンクです。

     [ENXIO]            指定されたファイルが、キャラクタ特殊またはブロック特殊
                        ファイルであり、この特殊ファイルに関連したデバイスが、
                        存在しません。

     [ENXIO]            O_NONBLOCK が設定され、指定されたファイルは、FIFO で、
                        O_WRONLY が設定され、プロセスには、読み込みでオープン
                        しているファイルがありません。

     [EINTR]            open() 操作が、シグナルによって割り込まれました。

     [EOPNOTSUPP]       O_SHLOCK または O_EXLOCK が、指定されましたが、基本的
                        なファイルシステムが、ロックをサポートしていません。

     [EOPNOTSUPP]       指定されたファイルが、それへのアクセスをサポートしてい
                        ないファイルシステムを通してマウントされた特殊ファイル
                        です (例えば、NFS)。

     [EWOULDBLOCK]      O_NONBLOCK と O_SHLOCK または O_EXLOCK の 1 つが、指定
                        され、ファイルが、ロックされています。

     [ENOSPC]           O_CREAT が、指定され、ファイルが、存在せず、ディレクト
                        リを含んでいるファイルシステムに空間がないので、新しい
                        ファイルのためのエントリが置かれているディレクトリを拡
                        張することができません。

     [ENOSPC]           O_CREAT が、指定され、ファイルが、存在せず、ファイルが
                        作成されているファイルシステムに空きの inode がありま
                        せん。

     [EDQUOT]           O_CREAT が、指定され、ファイルが、存在せず、ディレクト
                        リを含んでいるファイルシステムのディスクブロックのユー
                        ザのクォータが使い果たされたので、新しいファイルのため
                        のエントリが置かれているディレクトリを拡張することがで
                        きません。

     [EDQUOT]           O_CREAT が、指定され、ファイルが、存在せず、ファイルが
                        作成されているファイルシステムの inode のユーザの
                        クォータが使い果たされました。

     [EIO]              ディレクトリエントリの作成、または O_CREAT のための
                        inode の割り付けの間に、I/O エラーが起こりました。

     [EINTEGRITY]       破損したデータが、ファイルシステムから読み込む間に検出
                        されました。

     [ETXTBSY]          ファイルが、実行されている純粋な手続き (共有テキスト)
                        ファイルであり、open() システムコールが、書き込みアク
                        セスを要求します。

     [EFAULT]           path 引数が、プロセスの割り付けられたアドレス空間の外
                        側を指しています。

     [EEXIST]           O_CREAT と O_EXCL が、指定され、ファイルが、存在してい
                        ます。

     [EOPNOTSUPP]       ソケットをオープンする試みが行われました (現在、実装さ
                        れていません)。

     [EINVAL]           O_RDONLY, O_WRONLY または O_RDWR と O_EXEC または
                        O_SEARCH の不正な組み合わせで記述子をオープンする試み
                        が行われました。

     [EINVAL]           O_RESOLVE_BENEATH フラグが指定され、path が絶対パスで
                        す。

     [EBADF]            path 引数が、絶対パスを指定していません、そして fd 引
                        数は、AT_FDCWD でもなく検索のためにオープンされた有効
                        なファイル記述子でもありません。

     [ENOTDIR]          path 引数が、絶対パスではありません、そして fd が、
                        AT_FDCWD でもなくディレクトリに関連しているファイル記
                        述子でもありません。

     [ENOTDIR]          O_DIRECTORY が指定され、ファイルがディレクトリではあり
                        ません。

     [ECAPMODE]         AT_FDCWD が、指定され、プロセスが、ケーパビリティモー
                        ドです。

     [ECAPMODE]         open() が、呼び出されて、プロセスが、ケーパビリティ
                        モードです。

     [ENOTCAPABLE]      path は、絶対のパスであるか、または fd によって指定さ
                        れたディレクトリの階層構造のディレクトリの外側の先導す
                        る ".." 構成要素を含んでいます、プロセスは、ケーパビリ
                        ティモードです。

     [ENOTCAPABLE]      O_RESOLVE_BENEATH フラグが提供され、相対 pathfd
                        ディレクトリをエスケープします。

関連項目
     chmod(2), close(2), dup(2), fexecve(2), fhopen(2), getdtablesize(2),
     getfh(2), lgetfh(2), lseek(2), read(2), umask(2), write(2), fopen(3),
     capsicum(4)

規格
     これらの関数は、IEEE Std 1003.1-2008 (``POSIX.1'') によって明記されていま
     す。FreeBSD は、O_NOFOLLOW がフラグに設定されるとき、POSIX によって指定さ
     れるように ELOOP の代わりに EMLINK を errno に設定し、パス名の最後の構成
     要素は、その最後でない構成要素の 1 つで非常に多くのシンボリックリンク横断
     の場合からそれを区別しているシンボリックリンクです。

歴史
     open() 関数は、Version 1 AT&T UNIX で登場しました。openat() 関数は、
     FreeBSD 8.0 で導入されました。O_DSYNC は、13.0 で登場しました。

バグ
     The Open Group Extended API Set 2 仕様は、基本的なディレクトリが現在検索
     を可能にするかどうかではなく、検索のために fd がオープンされているかどう
     かに基づいている、fd が検索可能であるかかどうのテストを要求します。openat
     の現在の実装は、代わりにディレクトリの現在のパーミッションをチェックしま
     す。

     mode 引数は、可変個引数 (variadic) で、異なった呼び出し規約の結果となり、
     次に、そうでなければ、予期されます。

FreeBSD 13.0                   February 23, 2021                  FreeBSD 13.0

Table of Contents

FreeBSD マニュアル検索