<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.vmssoftware.com/index.php?action=history&amp;feed=atom&amp;title=C_Compiler</id>
	<title>C Compiler - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.vmssoftware.com/index.php?action=history&amp;feed=atom&amp;title=C_Compiler"/>
	<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=C_Compiler&amp;action=history"/>
	<updated>2026-05-09T20:31:47Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=C_Compiler&amp;diff=2630&amp;oldid=prev</id>
		<title>Jane.doe at 12:30, 19 September 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=C_Compiler&amp;diff=2630&amp;oldid=prev"/>
		<updated>2023-09-19T12:30:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.vmssoftware.com/index.php?title=C_Compiler&amp;amp;diff=2630&amp;amp;oldid=2628&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Jane.doe</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=C_Compiler&amp;diff=2628&amp;oldid=prev</id>
		<title>Jane.doe at 11:52, 19 September 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=C_Compiler&amp;diff=2628&amp;oldid=prev"/>
		<updated>2023-09-19T11:52:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.vmssoftware.com/index.php?title=C_Compiler&amp;amp;diff=2628&amp;amp;oldid=2627&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Jane.doe</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=C_Compiler&amp;diff=2627&amp;oldid=prev</id>
		<title>Jane.doe: Created page with &quot;The &#039;&#039;&#039;C Compiler&#039;&#039;&#039; is the software that compiles code written in C into object files.  =Includes=  CC /INCLUDE_DIRECTORY qualifier provides similar functionality to the -I o...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=C_Compiler&amp;diff=2627&amp;oldid=prev"/>
		<updated>2023-09-19T11:20:26Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;The &amp;#039;&amp;#039;&amp;#039;C Compiler&amp;#039;&amp;#039;&amp;#039; is the software that compiles code written in C into object files.  =Includes=  CC /INCLUDE_DIRECTORY qualifier provides similar functionality to the -I o...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;C Compiler&amp;#039;&amp;#039;&amp;#039; is the software that compiles code written in C into object files.&lt;br /&gt;
&lt;br /&gt;
=Includes=&lt;br /&gt;
&lt;br /&gt;
CC /INCLUDE_DIRECTORY qualifier provides similar functionality to the -I option of the cc command on DIGITAL UNIX systems: it allows you to specify additional places to search for include files. It can be one of the following:&lt;br /&gt;
&lt;br /&gt;
* OpenVMS file-spec to be used as a default file-spec to RMS file services:&lt;br /&gt;
 /INCLUDE=DISK$:[directory]&lt;br /&gt;
* UNIX style pathname in quotation marks&lt;br /&gt;
 /INCLUDE=/sys&lt;br /&gt;
* Empty string (&amp;quot;&amp;quot;)&lt;br /&gt;
 /INCLUDE=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If you specify one of the places as an empty string, the compiler will not search for any of its conventionally-named places      (DECC$USER_INCLUDE, DECC$SYSTEM_INCLUDE, DECC$LIBRARY_INCLUDE, SYS$COMMON:[DECC$LIB.INCLUDE.*], DECC$TEXT_LIBRARY, DECC$RTLDEF.TLB, SYS$STARLET_C.TLB). It searches only places specified explicitly on the command line by the /INCLUDE_DIRECTORY and /LIBRARY qualifiers (or by the location of the primary source file, depending on the /NESTED_INCLUDE_DIRECTORY qualifier).&lt;br /&gt;
&lt;br /&gt;
The basic search order depends on the form of the header-file name (after macro expansion). Additional aspects of the search order are controlled by other command-line qualifiers and the presence or absence of logical name definitions.&lt;br /&gt;
&lt;br /&gt;
==All forms of header-file inclusion==&lt;br /&gt;
&lt;br /&gt;
* In quotes&lt;br /&gt;
 #include &amp;quot;stdio.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* In angle brackets&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* An identifier to be treated as a text-module name&lt;br /&gt;
         stdio&lt;br /&gt;
&lt;br /&gt;
Except where otherwise specified, searching a &amp;quot;place&amp;quot; means that the string designating the place is used as the default file-spec in a call to an RMS [[System Service|system service]] (for example, [[$SEARCH]]/[[$PARSE]]), with a file-spec consisting of the name in the #include directive without enclosing delimiters. The search terminates successfully as soon as a file can be opened for reading.&lt;br /&gt;
&lt;br /&gt;
==Quoted includes==&lt;br /&gt;
&lt;br /&gt;
1. One of the following:&lt;br /&gt;
&lt;br /&gt;
* If /NESTED_INCLUDE_DIRECTORY=INCLUDE_FILE (the default) is in effect, search the directory containing the file in which the #include directive itself occurred.  The meaning of &amp;quot;directory containing&amp;quot; is:  the RMS &amp;quot;resultant string&amp;quot; obtained when the file in which the #include occurred was opened, except that the filename and subsequent components are replaced by the default file type for headers (&amp;quot;.H&amp;quot;, or just &amp;quot;.&amp;quot; if /ASSUME=NOHEADER_TYPE_DEFAULT is in effect). The &amp;quot;resultant string&amp;quot; will not have translated any concealed device logical.&lt;br /&gt;
* If /NESTED_INCLUDE_DIRECTORY=PRIMARY_FILE is in effect, search the default file type for headers using the context of the primary source file.  This means that just the file type (&amp;quot;.H&amp;quot; or &amp;quot;.&amp;quot;) is used for the default file-spec but, in addition, the chain of &amp;quot;related file-specs&amp;quot; used to maintain the sticky defaults for processing the next top-level source file is applied when searching for the include file.&lt;br /&gt;
* If /NESTED_INCLUDE_DIRECTORY=NONE is in effect, this entire step (Step 1) is bypassed.&lt;br /&gt;
&lt;br /&gt;
2. Search the places specified in the /INCLUDE_DIRECTORY qualifier, if any.  A place that can be parsed successfuly as an OpenVMS file-spec and that does not contain an explicit file type or version specification is edited to append the default header file type specification (&amp;quot;.H&amp;quot; or &amp;quot;.&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
A place containing a &amp;quot;/&amp;quot; character is considered to be a UNIX-style name.  If the name in the #include directive also contains a &amp;quot;/&amp;quot; character that is not the first character and is not preceded by a &amp;quot;!&amp;quot; character (that is, it is not an absolute UNIX-style pathname), then the name in the #include directive is appended to the named place, separated by a &amp;quot;/&amp;quot; character, before applying the decc$to_vms pathname translation function.&lt;br /&gt;
&lt;br /&gt;
3.  If &amp;quot;DECC$USER_INCLUDE&amp;quot; is defined as a logical name, search &amp;quot;DECC$USER_INCLUDE:.H&amp;quot;, or just &amp;quot;DECC$USER_INCLUDE:.&amp;quot; if /ASSUME=NOHEADER_TYPE_DEFAULT is in effect.&lt;br /&gt;
&lt;br /&gt;
4.  If the file is not found, follow the steps for the angle-bracketed form of inclusion.&lt;br /&gt;
&lt;br /&gt;
==Angle bracketed includes==&lt;br /&gt;
&lt;br /&gt;
1.  Search the place &amp;quot;/&amp;quot;.  This is a UNIX-style name that can combine only with UNIX names specified explicitly in the #include directive.  It causes a specification like &amp;lt;sys/types.h&amp;gt; to be considered first as /sys/types.h, which is translated to SYS:TYPES.H.&lt;br /&gt;
&lt;br /&gt;
2.  Search the places specified in the /INCLUDE_DIRECTORY qualifier, exactly as in Step 2 for the quoted form of inclusion.&lt;br /&gt;
&lt;br /&gt;
3.  If &amp;quot;DECC$SYSTEM_INCLUDE&amp;quot; is defined as a logical name, search &amp;quot;DECC$SYSTEM_INCLUDE:.H&amp;quot;, or just &amp;quot;DECC$SYSTEM_INCLUDE:.&amp;quot; if /ASSUME=NOHEADER_TYPE_DEFAULT is in effect.&lt;br /&gt;
&lt;br /&gt;
4.  If &amp;quot;DECC$LIBRARY_INCLUDE&amp;quot; is defined as a logical name and &amp;quot;DECC$SYSTEM_INCLUDE&amp;quot; is NOT defined as a logical name, search &amp;quot;DECC$LIBRARY_INCLUDE:.H&amp;quot;, or just &amp;quot;DECC$LIBRARY_INCLUDE:.&amp;quot; if /ASSUME=NOHEADER_TYPE_DEFAULT is in effect.&lt;br /&gt;
&lt;br /&gt;
5.  If neither &amp;quot;DECC$LIBRARY_INCLUDE&amp;quot; nor &amp;quot;DECC$SYSTEM_INCLUDE&amp;quot; are defined as logical names, then search the default list of places for plain text-file copies of compiler header files as follows:&lt;br /&gt;
&lt;br /&gt;
         SYS$COMMON:[DECC$LIB.INCLUDE.DECC$RTLDEF]*.H&lt;br /&gt;
         SYS$COMMON:[DECC$LIB.INCLUDE.SYS$STARLET_C]*.H&lt;br /&gt;
&lt;br /&gt;
If the file is not found, perform the text library search described in the next step.&lt;br /&gt;
&lt;br /&gt;
6.  Extract the simple filename and file type from the #include specification and use the filename as the module name to search a list of text libraries associated with that file type. For any file type, the initial text libraries searched consist of those named on the command line with /LIBRARY qualifiers. If the /INCLUDE_DIRECTORY qualifier contained an empty string,no further text libraries are searched.  Otherwise, DECC$TEXT_LIBRARY is searched for all file types. If &amp;quot;DECC$LIBRARY_INCLUDE&amp;quot; is defined as a logical name, then no further text libraries are searched.  Otherwise, the subsequent libraries searched for each file type are:&lt;br /&gt;
&lt;br /&gt;
- For &amp;quot;.H&amp;quot; or &amp;quot;.&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
                SYS$LIBRARY:DECC$RTLDEF.TLB&lt;br /&gt;
                SYS$LIBRARY:SYS$STARLET_C.TLB&lt;br /&gt;
&lt;br /&gt;
- For any file type other then &amp;quot;.H&amp;quot; or &amp;quot;.&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
                SYS$LIBRARY:SYS$STARLET_C.TLB&lt;br /&gt;
&lt;br /&gt;
7.  If the previous step fails, search:&lt;br /&gt;
&lt;br /&gt;
         SYS$LIBRARY:.H&lt;br /&gt;
&lt;br /&gt;
Under /ASSUME=NOHEADER_TYPE_DEFAULT, the default file type is modified as usual.&lt;br /&gt;
For the text-module (non-portable) form of #include: &lt;br /&gt;
&lt;br /&gt;
The name can only be an identifier.  It, therefore, has no  associated &amp;quot;file type&amp;quot;.  The identifier is used as a module name to search the following:&lt;br /&gt;
&lt;br /&gt;
1.  The text libraries named on the command line with /LIBRARY qualifiers, in left-to-right order.&lt;br /&gt;
&lt;br /&gt;
2.  The following list of text libraries in the order shown (unless the /INCLUDE_DIRECTORY qualifier contains an empty string, in which case no further text libraries are searched):&lt;br /&gt;
&lt;br /&gt;
             DECC$TEXT_LIBRARY&lt;br /&gt;
             SYS$LIBRARY:DECC$RTLDEF.TLB&lt;br /&gt;
             SYS$LIBRARY:SYS$STARLET_C.TLB&lt;/div&gt;</summary>
		<author><name>Jane.doe</name></author>
	</entry>
</feed>