.\" Copyright (c) 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" .\" This code is derived from software contributed to Berkeley by .\" Ken Arnold. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)strfile.8 8.1 (Berkeley) 6/9/93 .\" %FreeBSD: src/games/fortune/strfile/strfile.8,v 1.5.2.3 2001/08/16 10:08:23 ru Exp % .\" .\" $FreeBSD: doc/ja_JP.eucJP/man/man8/strfile.8,v 1.7 2001/07/29 05:15:30 horikawa Exp $ .\" .Dd June 9, 1993 .Dt STRFILE 8 .Os .Sh 名称 .Nm strfile , .Nm unstr .Nd "文字列を格納するためのランダムアクセスファイルを作成する" .Sh 書式 .Nm .Op Fl iorsx .Op Fl c Ar char .Ar source_file .Op Ar output_file .Nm unstr .Ar source_file .Sh 解説 .Nm は 1 つのパーセント記号 .Ql \&% を含む行で区切られる行グループを含むファイルを読み込み、 ヘッダ構造と各々の行グループのファイルオフセットを含む データファイルを作成します。 このファイルによって文字列のランダムアクセスが可能となります。 .Pp 出力ファイルは、それがコマンド行において指定されていない場合、 .Ar source_file Ns Sy .dat というファイル名になります。 .Pp 指定できるオプションとして、次のものがあります。 .Bl -tag -width "-c char" .It Fl C ファイルにコメントが含まれることを示すフラグです。 本オプションは、ヘッダの .Ar str_flags フィールドの .Dv STR_COMMENTS ビットをセットさせます。 コメントは、行頭の 2 つの区切り文字で指示されますが、 strfile はコメント行に対して特別な処理を行いません。 .It Fl c Ar char 区切り文字をパーセント記号から .Ar char に変更します。 .It Fl i 文字列の並び換えを行なう際に、大文字・小文字を区別しません。 .It Fl o 文字列をアルファベット順に並び換えます。 オフセットテーブルは参照される行グループのアルファベット順に ソートされます。 文字列の頭のアルファベットと数字以外の文字は無視されます。 このオプションを指定すると、ヘッダ中の .Ar str_flags フィールドの .Dv STR_ORDERED ビットがセットされます。 .It Fl r 文字列へのアクセスをランダム化します。 オフセットテーブル中のエントリはランダムに並び換えられます。 このオプションを指定すると、ヘッダ中の .Ar str_flags フィールドの .Dv STR_RANDOM ビットがセットされます。 .It Fl s なにも表示せずに実行します。終了時にサマリのメッセージを表示しません。 .It Fl x 行グループ中の各アルファベット文字を単純シーザー暗号 (simple caesar cypher) における 13 ポジションだけローテートします。 このオプションを指定すると、ヘッダ中の .Ar str_flags フィールドの .Dv STR_ROTATED ビットがセットされます。 .El .Pp ヘッダのフォーマットは以下のとおりです。 .Bd -literal #define VERSION 1 unsigned long str_version; /* バージョン番号 */ unsigned long str_numstr; /* ファイル中の文字列の数 */ unsigned long str_longlen; /* 最長文字列の長さ */ unsigned long str_shortlen; /* 最短文字列の長さ */ #define STR_RANDOM 0x1 /* ランダムフラグの位置 */ #define STR_ORDERED 0x2 /* 並び換えフラグの位置 */ #define STR_ROTATED 0x4 /* rot-13されたテキスト */ unsigned long str_flags; /* フラグビットフィールド */ char str_delim; /* 区切り文字 */ .Ed .Pp 全てのフィールドはネットワークバイトオーダで書かれます。 .Pp .Nm unstr は .Nm で行なったことを元に戻すためのものです。 .Ar source_file 中に含まれる文字列を .Ar source_file Ns Pa .dat ファイルのヘッダにリストされた順で標準出力に表示します。 .Fl o を使って .Nm を実行した後、 .Nm unstr を使ってそれをテーブルの順にダンプすることによって、 入力ファイルのソートされたバージョンを作成することが可能です。 .Sh 関連項目 .Xr byteorder 3 , .Xr fortune 6 .Sh 関連ファイル .Bl -tag -width strfile.dat -compact .It Pa strfile.dat デフォルトの出力ファイル。 .El .Sh 歴史 .Nm ユーティリティは .Bx 4.4 から登場しました。