Provided by: manpages-posix_2.16-1_all bug

NAME

       cflow - generate a C-language flowgraph (DEVELOPMENT)

SYNOPSIS

       cflow [-r][-d num][-D name[=def]] ... [-i incl][-I dir] ...
              [-U dir] ... file ...

DESCRIPTION

       The  cflow  utility  shall  analyze  a  collection of object files or assembler, C-language, lex, or yacc
       source files, and attempt to build a graph, written to standard output, charting the external references.

OPTIONS

       The cflow utility shall conform to the Base Definitions volume  of  IEEE Std 1003.1-2001,  Section  12.2,
       Utility  Syntax  Guidelines,  except that the order of the -D, -I, and -U options (which are identical to
       their interpretation by c99) is significant.

       The following options shall be supported:

       -d  num
              Indicate the depth at which the flowgraph is cut  off.  The  application  shall  ensure  that  the
              argument  num is a decimal integer. By default this is a very large number (typically greater than
              32000). Attempts to set the cut-off depth to a non-positive integer shall be ignored.

       -i  incl
              Increase the number of included  symbols.  The  incl  option-argument  is  one  of  the  following
              characters:

       x
              Include  external  and  static data symbols. The default shall be to include only functions in the
              flowgraph.

       _
              (Underscore) Include names that begin with an underscore. The default shall be  to  exclude  these
              functions (and data if -i x is used).

       -r     Reverse  the caller:callee relationship, producing an inverted listing showing the callers of each
              function. The listing shall also be sorted in lexicographical order by callee.

OPERANDS

       The following operand is supported:

       file   The pathname of a file for which a graph is to be generated. Filenames suffixed by .l shall  shall
              be taken to be lex input, .y as yacc input, .c as c99 input, and .i as the output of c99 -E.  Such
              files shall be processed as appropriate, determined by their suffix.

       Files  suffixed  by .s (conventionally assembler source) may have more limited information extracted from
       them.

STDIN

       Not used.

INPUT FILES

       The input files shall be object files or assembler, C-language, lex, or yacc source files.

ENVIRONMENT VARIABLES

       The following environment variables shall affect the execution of cflow:

       LANG   Provide a default value for the internationalization variables that are unset or  null.  (See  the
              Base  Definitions  volume of IEEE Std 1003.1-2001, Section 8.2, Internationalization Variables for
              the  precedence  of  internationalization  variables  used  to  determine  the  values  of  locale
              categories.)

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

       LC_COLLATE

              Determine the locale for the ordering of the output when the -r option is used.

       LC_CTYPE
              Determine 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 and input files).

       LC_MESSAGES
              Determine  the locale that should be used to affect the format and contents of diagnostic messages
              written to standard error.

       NLSPATH
              Determine the location of message catalogs for the processing of LC_MESSAGES .

ASYNCHRONOUS EVENTS

       Default.

STDOUT

       The flowgraph written to standard output shall be formatted as follows:

              "%d %s:%s\n", <reference number>, <global>, <definition>

       Each line of output begins with a reference (that is, line) number, followed by indentation of  at  least
       one  column  position per level. This is followed by the name of the global, a colon, and its definition.
       Normally globals are only functions not defined as an external or beginning with an underscore;  see  the
       OPTIONS  section  for  the  -i  inclusion  option.  For information extracted from C-language source, the
       definition consists of an abstract type declaration  (for  example,  char  *)  and,  delimited  by  angle
       brackets,  the  name  of  the source file and the line number where the definition was found. Definitions
       extracted from object files indicate the filename and location counter under which  the  symbol  appeared
       (for example, text).

       Once  a  definition  of  a  name  has  been  written, subsequent references to that name contain only the
       reference number of the line where the definition can be found. For undefined references, only "<>" shall
       be written.

STDERR

       The standard error shall be used only for diagnostic messages.

OUTPUT FILES

       None.

EXTENDED DESCRIPTION

       None.

EXIT STATUS

       The following exit values shall be returned:

        0     Successful completion.

       >0     An error occurred.

CONSEQUENCES OF ERRORS

       Default.

       The following sections are informative.

APPLICATION USAGE

       Files produced by lex and yacc cause the reordering of line number declarations,  and  this  can  confuse
       cflow.  To obtain proper results, the input of yacc or lex must be directed to cflow.

EXAMPLES

       Given the following in file.c:

              int i;
              int f();
              int g();
              int h();
              int
              main()
              {
                  f();
                  g();
                  f();
              }
              int
              f()
              {
                  i = h();
              }

       The command:

              cflow -i x file.c

       produces the output:

              1 main: int(), <file.c 6>
              2    f: int(), <file.c 13>
              3        h: <>
              4        i: int, <file.c 1>
              5    g: <>

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       c99 , lex , yacc

COPYRIGHT

       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition,
       Standard  for  Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics Engineers,
       Inc and The Open Group. In the event of any discrepancy between this version and the  original  IEEE  and
       The  Open  Group  Standard,  the  original  IEEE and The Open Group Standard is the referee document. The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group                                   2003                                              CFLOW(P)