BF [filename]* [option]*
ファイルを標準出力へ出力する。
ファイル名を省略すると標準入力を扱う。
ファイル名を複数記述するとそれらを連結して取り扱う。
入力の出力への単純なコピーだが、全ての入力を読み終わった後で出力を行う。
このため、入力ファイルと出力ファイルは同一のものでも構わない。
主に、コマンドラインのパイプ接続での取り扱いにくさを解消するために用いる。以下に典型的な使用例を挙げる。
通常のコマンドライン処理はパイプ接続で行うため、
コマンドライン上の全てのプログラムは同時に起動する。
このため、コマンドラインの最後に出力ファイル名を指定しても、
起動と同時にそのファイルを出力モードで開くために、
入力と出力が同一のファイルの場合はエラーになる。
この問題を解消するには、以下のようにすれば良い。
BF
をコマンドラインの最後に書き、オプション-O
で
出力ファイル名を指定する。
cat
やdircopy
等のようにディレクトリを一括に扱う場合、
通常の方法では、コマンドラインの実行と同時に出力ファイルが作られ、そのファイルも
処理対象のファイルとして含まれてしまう。
この場合も、
BF
をコマンドラインの最後に書き、オプション-O
で
出力ファイル名を指定する。
通常のコマンドは、入力ファイルを閉じてから、出力ファイルを閉じる(出力パイプが閉じる)。
最後に置かれたBF
は、直前のパイプが閉じた後に、
つまり、BF
への入力が終了した後に、出力ファイルを作成する。
この順序性が保たれるために、入力ファイルが開いている間に出力ファイルを作成することがない。
しかし、出力ファイルを閉じてから入力ファイルを閉じるようなプログラムが、
前方に存在すると順序性が保たれないのでうまく動作しない。
この場合は以下のようにすると良い。
BF
を加える。BF
でファイル名を指定し、次のプログラムは、パイプから
データを読むようにする。
末尾のBF
は、例のごとく、オプション-O
で出力を指定する。
BF
をコマンドラインの最後に書き、
オプション-O
で出力ファイルを指定、オプション-W
で
出力待ち合わせを指定する。-W
で待ち合わせ時間を
指定することもできる。
データは全てバイナリとして取り扱う。
バッファリングの手法として次の二通りが選べる。
バッファに特定サイズのメモリを使用し、これを超えた場合はテンポラリファイルを使用する。
メモリは必要に応じて取られるが、最大サイズを -B オプションで指定できる。
バッファにメモリを使用する。(-M)
-Bbytesize
-M
-N
-Ofilename
-T[dirname]
-W[timecount]
Ver 1.00 | 初版 |