日本語 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.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
FOPEN(3) FreeBSD ライブラリ関数マニュアル FOPEN(3) 名称 fopen, fdopen, freopen, fmemopen -- ストリームオープン関数 ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <stdio.h> FILE * fopen(const char * restrict path, const char * restrict mode); FILE * fdopen(int fildes, const char *mode); FILE * freopen(const char *path, const char *mode, FILE *stream); FILE * fmemopen(void *restrict *buf, size_t size, const char * restrict mode); 解説 fopen() 関数は、path によって指される文字列の名前のファイルをオープンし、 ストリームをそれに関連付けます。 引数 mode は、次の文字の 1 をで始まる文字列を指します: ``r'' 読み込みのためにオープンします。ストリームは、ファイルの先頭に位 置付けられます。ファイルが存在しないなら、失敗します。 ``w'' 書き込みのためにオープンします。ストリームは、ファイルの先頭に位 置付けられます。ファイルが存在するなら、ファイルを長さ 0 に切り詰 め、ファイルが存在しないなら、作成されます。 ``a'' 書き込みのためにオープンします。ストリームは、ファイルの最後に位 置付けられます。それに続くファイルへの書き込みは、任意に介在する fseek(3) または類似のものに関係なく、常に、そのときの最新のファイ ルの終りで終了します。ファイルが存在しないなら、作成されます。 オプションの ``+'' が続く ``r'', ``w'' または ``a'' は、読み込みと書き込 みの両方のためにファイルをオープンします。オプションの ``x'' が続く ``w'' または ``w+'' によって、fopen() 呼び出しは、ファイルが既に存在するなら、 失敗します。上記に続くオプションの ``e'' によって、fopen() 呼び出しは、基 本的なファイル記述子で FD_CLOEXEC フラグを設定することができます。 また、mode 文字列は、``+'' または最初の文字のいずれかの後に文字 ``b'' を 含むことができます。これは、完全に ISO/IEC 9899:1990 (``ISO C90'') との互 換性のためであり、fmemopen() のためだけに効果があります。そうでなければ、 ``b'' は、無視されます。 任意の作成されたファイルには、プロセスの umask 値 (umask(2) を参照) に よって修正される、モード ``S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH'' (0666) があります。 読み込みと書き込みを、任意の順序で読み込みと書き込みのストリームを混ぜ合 わせることができ、stdio の以前バージョンでのように仲介するシーク (seek) 必要としません。しかしながら、これは、他のシステムへの移植性がありませ ん。ANSI C は、入力操作がファイルの終りに出合わなければ、ファイルの位置付 け関数が出力と入力の間に入ることを必要とします。 fdopen() 関数は、ストリームを既存のファイル記述子 fildes に関連付けます。 ストリームのモードは、ファイル記述子のモードと互換性がなければなりませ ん。``x'' モードオプションは、無視されます。``e'' モードオプションが存在 するなら、FD_CLOEXEC フラグが設定され、そうでなければ、変わらないままとな ります。ストリームが fclose(3) によってクローズされるとき、fildes もク ローズされます。 freopen() 関数は、path によって指される文字列の名前のファイルをオープン し、stream によって指されるストリームをそれに関連付けます。元のストリーム は、(存在するなら) クローズされます。mode 引数は、ちょうど fopen() 関数の ように使用されます。 path 引数が NULL であるなら、freopen() は、新しいモードで stream に関連し ているファイルを再オープンすることを試みます。新しいモードは、ストリーム が次のようのオープンされた元のモードと互換性がなければなりません: 読み込 みのためにオープンされたストリームは、読み込みのためだけに再オープンする ことができ、書き込みのためにオープンされたストリームは、書き込みのためだ けに再オープンすることができ、そして読み込みと書き込みのためにオープンさ れたストリームは、任意のモードで再オープンすることができます。``x'' モー ドのオプションは、このコンテキストにおいて意味がありません。 freopen() 関数の主な使用は、標準テキストストリーム (stderr, stdin または stdout) に関連したファイルを変更することです。 fmemopen() 関数は、ストリームで buf と size 引数によって与えられたバッ ファに関連付けます。buf 引数は、NULL ポインタまたは少なくとも size バイト であるバッファへのポインタのいずれかです。NULL ポインタが buf 引数として 指定されるなら、fmemopen() は、size バイトをメモリを割り付けるます。この バッファは、ストリームがクローズされるとき、自動的に解放されます。テキス トモード (デフォルト) または (``b'' が mode 引数の 2 番目または 3 番目の 位置に存在するなら) バイナリモードでバッファをオープンすることができま す。テキストモードでオープンされたバッファは、最後の書き込みがすべての バッファを満たしていないなら、書き込みがヌルバイトで終了していることを確 認してください。バイナリモードでオープンされたバッファは、決してヌルバイ トを追加しません。 戻り値 成功して終了すると、fopen(), fdopen() と freopen() は、FILE ポインタを返 します。そうでなければ、NULL が返され、グローバル変数 errno にエラーを示 す値が設定されます。 エラー [EINVAL] fopen(), fdopen(), freopen() または fmemopen() への mode 引数が無効でした。 また fopen(), fdopen(), freopen() と fmemopen() 関数が、失敗し、ルーチン malloc(3) で明記されたエラーのいずれかが errno に設定されます。 また fopen() 関数は、失敗し、ルーチン open(2) で明記されたエラーのいずれ かが errno に設定されます。 また fdopen() 関数は、失敗し、ルーチン fcntl(2) で明記されたエラーのいず れかが errno に設定されます。 また freopen() 関数は、失敗し、ルーチン open(2), fclose(3) と fflush(3) で明記されたエラーのいずれかが errno に設定されます。 また、fmemopen() 関数は、失敗し、size 引数が 0 であるなら、errno を設定し ます。 関連項目 open(2), fclose(3), fileno(3), fseek(3), funopen(3) 規格 fopen() と freopen() 関数は、ISO/IEC 9899:2011 (``ISO C11'') に適合する ``x'' モードオプションを除いて、ISO/IEC 9899:1990 (``ISO C90'') に適合し ています。fdopen() 関数は、IEEE Std 1003.1-1988 (``POSIX.1'') に適合して います。``e'' モードオプションは、どんな規格にも適合しませんが、glibc に よってもサポートされています。fmemopen() 関数は、IEEE Std 1003.1-2008 (``POSIX.1'') に適合しています。``b'' モードは、どんな規格にも適合しませ んが、glibc によってもサポートされています。 FreeBSD 11.4 January 30, 2013 FreeBSD 11.4