CPP(1) CPP(1)
NAME
cpp - C language preprocessor
SYNOPSIS
cpp [ option ... ] [ ifile [ ofile ] ]
DESCRIPTION
Cpp interprets ANSI C preprocessor directives and does macro
substitution. The input ifile and output ofile default to
standard input and standard output respectively.
The options are:
-Dname
-Dname=def
-Idir
Same as in 8c(1): add dir to the search for directives.
-M Generate no output except a list of include files in a
form suitable for specifying dependencies to mk(1). Use
twice to list files in angle brackets.
-N Turn off default include directories. All must be
specified with -I, or in the environment variable
include. Without this option, /$objtype/include and
/sys/include are used as the last two searched directo-
ries for include directives, where $objtype is read
from the environment.
-V Print extra debugging information.
-P Do not insert ``#line'' directives into the output.
-+ Understand C++ comments.
-. Inhibit include search in the source's directory.
-i Print the list of directories searched when #include is
found. Last listed are searched first.
In the absence of the -P option, the processed text output
is sprinkled with lines that show the original input line
numbering:
#line linenumber "ifile"
The command reads the environment variable include and adds
its (blank-separated) list of directories to the standard
search path for directives. They are looked at before any
directories specified with -I, which are looked at before
Page 1 Plan 9 (printed 10/30/25)
CPP(1) CPP(1)
the default directories.
The input language is as described in the ANSI C standard.
The standard Plan 9 C compilers do not use cpp; they contain
their own simple but adequate preprocessor, so cpp is usu-
ally superfluous.
FILES
/sys/include directory for machine-independent include
files
/$objtype/include directory for machine-dependent include
files
SOURCE
/sys/src/cmd/cpp
SEE ALSO
8c(1)
Page 2 Plan 9 (printed 10/30/25)