unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



tsort(1)							     tsort(1)



NAME

  tsort	- Sorts	an unordered list of ordered pairs (topological	sort)

SYNOPSIS

  tsort	[file]

STANDARDS

  Interfaces documented	on this	reference page conform to industry standards
  as follows:

  tsort:  XCU5.0

  Refer	to the standards(5) reference page for more information	about indus-
  try standards	and associated tags.

OPTIONS

  None

OPERANDS

  file
      Pathname of a test file to be ordered.

      If no file operand is specified, tsort reads standard input.

DESCRIPTION

  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 lorder command.

  [Tru64 UNIX]	If file	contains an odd	number of fields, tsort	writes the
  error	message:

       tsort:  Specify an even number of data fields.





NOTES

  The LC_COLLATE environment variable does not affect the actions of tsort.



EXIT STATUS

  The following	exit values are	returned:

  0   Successful completion.

  >>0  An error occurred.

EXAMPLES

  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 com-
  mands	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
       scan.o scanfld.o

  Next,	the | (vertical	bar) sends this	list to	the tsort command, which con-
  verts	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

  The following	environment variables affect the execution of tsort:

  LANG
      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.

  LC_ALL
      If set to	a non-empty string value, overrides the	values of all the
      other internationalization variables.

  LC_CTYPE
      Determines the locale for	the interpretation of sequences	of bytes of
      text data	as characters (for example, single-byte	as opposed to multi-
      byte characters in arguments).

  LC_MESSAGES
      Determines the locale for	the format and contents	of diagnostic mes-
      sages written to standard	error.

  NLSPATH
      Determines the location of message catalogues for	the processing of
      LC_MESSAGES.

SEE ALSO

  Commands:  ar(1), lorder(1), xargs(1)

  Standards:  standards(5)