    CC(I)                        5/15/74                        CC(I)

    NAME
         cc - C compiler

    SYNOPSIS
         cc [ -c ] [ -p ] [ -f ] [ -O ] [ -S ] [ -P ] file ...

    DESCRIPTION
         Cc  is the UNIX C compiler.  It accepts three types of argu-
         ments:

         Arguments whose names end with `.c' are taken to be C source
         programs; they are compiled, and each object program is left
         on the file whose name is that of the source with `.o'  sub-
         stituted  for `.c'.  The `.o' file is normally deleted, how-
         ever, if a single C program is compiled and  loaded  all  at
         one go.

         The  following  flags are interpreted by cc.  See ld(I) for
         load-time flags.

          -c   Suppress the loading phase  of  the  compilation,  and
               force  an  object file to be produced even if only one
               program is compiled.

          -p   Arrange for the compiler to produce code which  counts
               the  number  of times each routine is called; also, if
               loading takes place, replace the standard startup rou-
               tine by one which automatically calls the monitor sub-
               routine(III) at the start and arranges to write out a
               mon.out file at normal termination of execution of the
               object program.  An execution profile can then be gen-
               erated by use of prof(I).

          -f   In systems without hardware floating-point, use a ver-
               sion of the C compiler  which  handles  floating-point
               constants and loads the object program with the float-
               ing-point interpreter.  Do not use if the hardware  is
               present.

          -O   Invoke an object-code optimizer.

          -S   Compile the named C programs, and leave the assembler-
               language output on corresponding files suffixed  `.s'.

          -P   Run  only  the  macro preprocessor on the named C pro-
               grams, and leave the  output  on  corresponding  files
               suffixed `.i'.

         Other  arguments  are  taken  to be either loader flag argu-
         ments, or C-compatible object programs,  typically  produced
         by  an  earlier cc run, or perhaps libraries of C-compatible
         routines.  These programs, together with the results of  any
         compilations  specified,  are loaded (in the order given) to
         produce an executable program with name a.out.

                                  - 1 -

    CC(I)                        5/15/74                        CC(I)

    FILES
         file.c          input file
         file.o          object file
         a.out           loaded output
         /tmp/ctm?       temporary
         /lib/c[01]      compiler
         /lib/fc[01]     floating-point compiler
         /lib/c2         optional optimizer
         /lib/crt0.o     runtime startoff
         /lib/mcrt0.o    runtime startoff of profiling
         /lib/fcrt0.o    runtime startoff for  floating-point  inter-
         pretation
         /lib/libc.a     C library; see section III.
         /lib/liba.a     Assembler  library  used by some routines in
         libc.a

    SEE ALSO
         ``Programming in C-- a tutorial,'' C Reference Manual, moni-
         tor(III), prof(I), cdb(I), ld(I).

    DIAGNOSTICS
         The  diagnostics  produced  by  C  itself are intended to be
         self-explanatory.  Occasional messages may  be  produced  by
         the  assembler or loader.  Of these, the most mystifying are
         from the assembler, in particular ``m,'' which means a  mul-
         tiply-defined external symbol (function or data).

    BUGS

                                  - 2 -