cpp – C language preprocessor

cpp [ option ... ] [ ifile [ ofile ] ]

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:
IdirSame as in 2c(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 directories 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 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 usually superfluous.

/sys/include       directory for machine–independent include files
/$objtype/includedirectory for machine–dependent include files