Switch to SpeakEasy.net DSL

The Modular Manual Browser

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

c89(1)								       c89(1)


  c89 -	Standard C Compiler


  c89 [-c] [-D name [=value]]... [-E] [-g] [-I directory]... [-L direc-
  tory]... [-o outfile]	[-O] [-s] [-U name]... file...


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

  c89:	XPG4, XPG4-UNIX

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


  The following	options	are defined by the XPG4-UNIX standard.	However, the
  compiler can also recognize the options defined in cc(1). Unlike cc(1), c89
  includes the -std1 option by default (for ANSI C standards checking).	 To
  check	for full compliance to XPG4-UNIX, you must also	specify
  -D_XOPEN_SOURCE_EXTENDED. See	standards(5) for more information.

  -c  Suppress the loading phase of the	compilation and	force an object	file
      to be produced.

  -g  Produce symbol table information for full	symbolic debugging and
      suppress optimizations that limit	full symbolic debugging.  Symbol
      types and	stack-frame variables names are	available. Global optimiza-
      tions are	not performed. Instruction scheduling does not span source
      line boundaries. Trap instructions are inserted to ensure	that excep-
      tions are	reported on the	source lines that caused them to be gen-

  -s  Remove the symbol	table and relocation bits to save space	(this impairs
      the usefulness of	the debuggers).	 This information can also be removed
      by strip(1).

  -o output
      Name the final output file output.  If this option is used, the file
      a.out is undisturbed.

  -D name[=def]
      Define the name as if with a #define statement. If no definition is
      given, the name is defined as 1.

  -E  Run only the C macro preprocessor	on the files and send the result to
      the standard output device.

  -I dir
      Specifies	that #include files whose names	do not begin with / are
      always sought first in the directory of the file argument, then in
      directories specified in -I options, and finally in the standard direc-
      tory, /usr/include.

  -L directory
      Adds dir to the list of directories that are searched for	libraries.
      Directories specified with -L are	searched before	the standard direc-

  -O  Enable global optimization, including code motion, strength reduction
      and test replacement, split lifetime analysis, and code scheduling.

  -U name
      Remove any definition of name previously defined with the	-D option.


  Compiles source code in conformance with the XPG4-UNIX standard.

  The c89 command can process one or more of the following types of "file"

    +  Files whose names end with .c are assumed to be C source	programs.
       They are	compiled, and each object program is left in the file whose
       name consists of	the last component of the source with .o substituted
       for .c.	The .o file is deleted only when a single source program is
       compiled	and linked in a	single step.

    +  Files whose names end with .a are assumed to be libraries of object
       files.  These files are passed directly to the linker.

    +  Files whose names end with .o are assumed to be object files produced
       by a previous c89 command.  These files are also	passed directly	to
       the linker.

  The c89 command can take other types of file arguments, although they	are
  not part of the standard specification.  See cc(1) for a description of the
  other	file types.

  When the compiler is invoked,	it defines the following C preprocessor	mac-
  ros that identify the	language of the	input files and	the environments in
  which	the code can run:


  You can reference these macros in #ifdef statements to isolate code that
  applies to a particular language or environment.


  The diagnostics produced by c89 are intended to be self-explanatory.	Occa-
  sional messages may be produced by the assembler or loader.


   1.  Compiles	helloworld.c and produces the executable file helloworld.c
	    c89	-o helloworld helloworld.c

   2.  Compiles	helloworld.c and creates the object file helloworld.o.
	    c89	-c helloworld.c

   3.  Compiles	a.c and	b.c, producing a.o and b.o. The	object files main.o,
       a.o, and	b.o are	then linked together, using the	library	/a/b/c/libQ.a
       to resolve any references in a.o, and /a/b/c/libp.a to resolve any
       references in b.o.  The executable program is placed in the file
       a.out.  Only one	-L option is needed because libQ.a and libp.a reside
       in the same directory.
	    c89	-L /a/b/c main.o a.c -l	Q b.c -l p


  The following	environment variables affect compiler operation:

      Provides a default value for locale variables that are not set.  If any
      of these variables contains an invalid setting, the compiler behaves as
      if none were set.

      If set to	a non-empty string, this variable overrides values in all
      locale variables,	including LANG.

      Determines the locale for	the interpretation of sequences	of bytes of
      text data	as characters (for example, single-byte	characters instead of
      multi-byte characters in arguments and input files).

      Determines the locale used for diagnostic	messages.

      Determines the locale of message catalogs	for the	processing of

      Provides a pathname that overrides the default directory for temporary
      files, if	any.

  For more information on these	environment variables, see i18n_intro(5) and


      Input file

      Object file

      Loaded output

      Compiler error messages in English


      Compiler configuration file (optional)

      C	front end

      C	macro preprocessor

      DEC C compiler

      Binary ucode and symbol table joiner

      Ucode loader

      Binary ucode and symbol table splitter

      Procedure	integrator

      Optional global ucode optimizer

      Post-link	optimizer

      Code generator

      Symbolic to binary assembly language translator

      Binary assembly language assembler and reorganizer

      Run-time startup

      Startup for profiling

      Standard library,	see intro(3)

      Level 1 profiling	library

      Standard directory for #include files

      Interface	between	prof and cord

      Procedure	rearranger

      Binary-to-symbolic ucode translator

      Symbolic-to-binary ucode translator

      File produced for	analysis by prof

      File produced for	analysis by gprof


  Commands: as(1), cc(1), ld(1)

  Other: i18n_intro(5),	l10n_intro(5), standards(5)

  Guides: ANSI X3.159-1989

  B. W.	Kernighan and D. M. Ritchie, The C Programming Language

  B. W.	Kernighan, Programming in C -- a tutorial

  D. M.	Ritchie, C Reference Manual

  Programmer's Guide

  Assembly Language Programmer's Guide

  Compaq C Language Reference Manual