The options are:
–Dname
–Dname=def
–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:

#linelinenumber "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.

FILES

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