tsort - Sorts an unordered list of ordered pairs (topological
Interfaces documented on this reference page conform to
industry standards as follows:
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
Pathname of a test file to be ordered.
If no file operand is specified, tsort reads standard
The tsort command reads from file or standard input an
unordered list of ordered pairs, builds an ordered list,
and writes it to standard output.
[Tru64 UNIX] For creating a subroutine library, do not
use tsort; use the following command in its place:
% ar -ts file.a
The input file should contain pairs of nonempty strings
separated by spaces. Pairs of different items indicate a
relative order. Pairs of identical items indicate presence,
but no relative order.
[Tru64 UNIX] You can use tsort to sort the output of the
[Tru64 UNIX] If file contains an odd number of fields,
tsort writes the error message:
tsort: Specify an even number of data fields.
The LC_COLLATE environment variable does not affect the
actions of tsort.
The following exit values are returned: Successful completion.
An error occurred.
To create a subroutine library, enter: lorder charin.o
scanfld.o scan.o scanln.o | tsort | xargs ar qv libsubs.a
(Enter the command entirely on one line, not on two lines
as shown above.)
This creates a subroutine library named libsubs.a that
contains charin.o, scanfld.o, scan.o, and scanln.o. The
ordering of the object modules in the library is important.
The ld command requires each module to precede all
the other modules that it calls or references. The lorder
and tsort commands together add the subroutines to the
library in the proper order.
Suppose that scan.o calls scanfld.o and scanln.o. scanfld.o
also calls charin.o. First, the lorder command creates
a list of pairs that shows these dependencies:
charin.o charin.o scanfld.o scanfld.o scan.o scan.o
scanln.o scanln.o scanfld.o charin.o scanln.o charin.o
Next, the | (vertical bar) sends this list to the tsort
command, which converts it into the ordering you need:
scan.o scanfld.o scanln.o charin.o
Note that each module precedes the module it calls.
charin.o, which does not call another module, is last.
The second | (vertical bar) then sends this list to xargs,
which constructs and runs the following ar command:
ar qv libsubs.a scan.o scanfld.o scanln.o charin.o
This ar command creates the properly ordered library.
ENVIRONMENT VARIABLES [Toc] [Back]
The following environment variables affect the execution
of tsort: Provides a default value for the internationalization
variables that are unset or null. If LANG is unset
or null, the corresponding value from the default locale
is used. If any of the internationalization variables
contain an invalid setting, the utility behaves as if none
of the variables had been defined. If set to a non-empty
string value, overrides the values of all the other internationalization
variables. Determines the locale for the
interpretation of sequences of bytes of text data as characters
(for example, single-byte as opposed to multibyte
characters in arguments). Determines the locale for the
format and contents of diagnostic messages written to
standard error. Determines the location of message catalogues
for the processing of LC_MESSAGES.
Commands: ar(1), lorder(1), xargs(1)
[ Back ]