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.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 は現在、作成中で日々更新されています。



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | ライブラリ | 書式 | 解説 | 戻り値 | 使用例 | 関連項目 | 歴史
STRLCPY(3)             FreeBSD ライブラリ関数マニュアル             STRLCPY(3)

名称
     strlcpy, strlcat -- サイズ限界のある文字列のコピーと連結

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

書式
     #include <string.h>

     size_t
     strlcpy(char * restrict dst, const char * restrict src, size_t dstsize);

     size_t
     strlcat(char * restrict dst, const char * restrict src, size_t dstsize);

解説
     strlcpy() と strlcat() 関数は、snprintf(3) と同じ入力パラメータと出力結果
     がある文字列をコピーし、連結します。それらは、容易に乱用される傾向がある
     関数 strncpy(3)strncat(3) を置き換え、より安全で、より一貫性があり、
     エラーがより少なくなるように設計されています。

     strlcpy() と strlcat() は、余地があるなら、宛先のバッファとヌル (NUL) 文
     字で終了していることを保証するために十分なサイズを取ります。ヌル文字の余
     地が dstsize に含まれるべきであることに注意してください。

     strlcpy() は、文字列 src から dst まで dstsize -1 文字までコピーします。
     dstsize が 0 でないなら、結果は、ヌル文字で終了します。

     strlcat() は、dst の終りに文字列 src を追加します。それは、多くても
     dstsize - strlen(dst) - 1 文字を追加します。次に、dstsize が 0 でないか、
     オリジナルの dst 文字列が dstsize より長くなかったなら、ヌル文字で終了し
     ます、(実際に、これは、dstsize が正しくないか、または dst が適切な文字列
     ではないことを意味するので、起こるべきではありません)。

     srcdst 文字列がオーバラップするなら、振る舞いは、不確定です。

戻り値
     さらに、返り値のタイプ (size_tint) とシグナルハンドラの安全性
     (snprintf(3) は、いくつかのシステムで完全に安全ではありません) について文
     句を言います、次の 2 つは、同等です:

           n = strlcpy(dst, src, len);
           n = snprintf(dst, len, "%s", src);

     snprintf(3) のように、strlcpy() と strlcat() 関数は、それらが作成しようと
     試みる文字列の合計の長さを返します。strlcpy() に関して、src の長さを意味
     します。strlcat() に関して、dst の初期値 + src の長さを意味します。

     返り値が >= dstsize あるなら、出力文字列は、切り詰められました。これを扱
     うことは、呼び出し側の責任です。

使用例
     次のコードの破片は、単純な場合を説明しています:

           char *s, *p, buf[BUFSIZ];

           ...

           (void)strlcpy(buf, s, sizeof(buf));
           (void)strlcat(buf, p, sizeof(buf));

     おそらく、パスネームを構築する間に切捨てを検出するために、次のようなもの
     が使用されるでしょう:

           char *dir, *file, pname[MAXPATHLEN];

           ...

           if (strlcpy(pname, dir, sizeof(pname)) >= sizeof(pname))
                   goto toolong;
           if (strlcat(pname, file, sizeof(pname)) >= sizeof(pname))
                   goto toolong;

     最初に、どのくらい文字をコピーしたか知っているので、追加の代わりにコピー
     を使用することによって少しスピードアップすることができます:

           char *dir, *file, pname[MAXPATHLEN];
           size_t n;

           ...

           n = strlcpy(pname, dir, sizeof(pname));
           if (n >= sizeof(pname))
                   goto toolong;
           if (strlcpy(pname + n, file, sizeof(pname) - n) >= sizeof(pname) - n)
                   goto toolong;

     しかしながら、それらは、strlcpy() と strlcat() の全体の目的を駄目にするの
     で、そのような最適化の有効性を疑問に思うかもしれません。実は、このマニュ
     アルページの最初のバージョンは、それを誤解しました。

関連項目
     snprintf(3), strncat(3), strncpy(3), wcslcpy(3)

     Todd C. Miller and Theo de Raadt, "strlcpy and strlcat -- Consistent,
     Safe, String Copy and Concatenation", Proceedings of the FREENIX Track:
     1999 USENIX Annual Technical Conference, USENIX Association, June 6-11,
     1999, http://www.usenix.org/publications/library/proceedings/usenix99/
     full_papers/millert/millert.pdf.

歴史
     strlcpy() と strlcat() 関数は、OpenBSD 2.4 と FreeBSD 3.3 ではじめて登場
     しました。

FreeBSD 13.2                      May 1, 2020                     FreeBSD 13.2

Table of Contents

FreeBSD マニュアル検索