tsortは,位相幾何学的なソートを,与えられたfile,また は入力ファイルが与えられない場合や`-'のファイルに対しては標準入力 で実行します.詳細とちょっとした歴史はtsort backgroundを参照して ください.概要です.
tsort [option] [file]
tsortは,その入力を文字列の組で,空白で分離されていて,不完 全な順序で示されているものとして読み込みます.出力は,与えられた不完全 な順序に対応する完全な順序になります.
例えば以下のようにします.
tsort <<EOF a b c d e f b c d e EOF
これは以下の出力を生成します.
a b c d e f
より現実的な例を考えてみましょう.一つのファイルに大きなすべての関数の
セットがあり,一つ以外のすべてがスタティックに宣言されていると仮定しま
す.現在,それ(いわゆるmain
)はファイルの最初に定義されていて,
それから直接呼び出されるものが続き,それらが呼び出すものがそれに続いて
いる,といったようになっています.さて,プロトタイプの利点が決定すると,
それらの関数の宣言(定義からのたくさんの情報が重複していることを意味し
ます)の関係を選択し,それらが使用される前にできるだけ多くの関数の順番
を整理することになるでしょう,それ以降の処理を自動化する一つの方法とし
て,直接呼ばれるそれぞれの関数のリストを入手することがあげられます.そ
のようなリストを生成することが可能なプログラムはたくさんあります.それ
らはグラフと呼ばれる物を記述します.それぞれの行で,左の関数が右の関数
を直接呼び出すことを示している以下のリストを考えてみましょう.
main parse_options main tail_file main tail_forever tail_file pretty_name tail_file write_header tail_file tail tail_forever recheck tail_forever pretty_name tail_forever write_header tail_forever dump_remainder tail tail_lines tail tail_bytes tail_lines start_lines tail_lines dump_remainder tail_lines file_lines tail_lines pipe_lines tail_bytes xlseek tail_bytes start_bytes tail_bytes dump_remainder tail_bytes pipe_bytes file_lines dump_remainder recheck pretty_name
そのとき,要求を満足するようにそれらの関数の順番を生成するため, tsortを使用することが可能です.
example$ tsort call-graph | tac dump_remainder start_lines file_lines pipe_lines xlseek start_bytes pipe_bytes tail_lines tail_bytes pretty_name write_header tail recheck parse_options tail_file tail_forever main
tsortは入力内の循環を検出し,出現した最初の循環部分を標準エ ラーに書き出します.
与えられた不完全な順序が,一般に唯一の完全な順序でないことに注意してく
ださい.上記の例の状況では,関数parse_options
は,main
の
前であればリストのどこにあってもかまいません.
オプションは,--helpと--versionのみです. See Common options.