changeset 472:f0c8d53e5a50

entered: chdir chmod qsort strass toupper tsleep wait
author roug
date Sun, 06 Oct 2002 09:10:36 +0000
parents ce6c1122bee6
children 091a1e4ae051
files docs/ccguide/ccguide.docbook docs/ccguide/ccguide.pdf docs/ccguide/chap1.chapter docs/ccguide/chap4.chapter docs/ccguide/chdir.refentry docs/ccguide/chmod.refentry docs/ccguide/printf.refentry docs/ccguide/qsort.refentry
diffstat 8 files changed, 181 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/docs/ccguide/ccguide.docbook	Sat Oct 05 16:53:43 2002 +0000
+++ b/docs/ccguide/ccguide.docbook	Sun Oct 06 09:10:36 2002 +0000
@@ -71,6 +71,7 @@
   <!ENTITY longjmpref       SYSTEM "longjmp.refentry">
   <!ENTITY mallocref       SYSTEM "malloc.refentry">
   <!ENTITY mktempref       SYSTEM "mktemp.refentry">
+  <!ENTITY printfref       SYSTEM "printf.refentry">
   <!ENTITY putcref       SYSTEM "putc.refentry">
   <!ENTITY putsref       SYSTEM "puts.refentry">
   <!ENTITY qsortref       SYSTEM "qsort.refentry">
Binary file docs/ccguide/ccguide.pdf has changed
--- a/docs/ccguide/chap1.chapter	Sat Oct 05 16:53:43 2002 +0000
+++ b/docs/ccguide/chap1.chapter	Sun Oct 06 09:10:36 2002 +0000
@@ -26,5 +26,139 @@
 parts of C that are obsolete or the constraints imposed by memory
 size limitations.
 </para>
+
+</section>
+<section>
+<title>Compiler Option Flags</title>
+<para>
+The compiler recognizes several command-line option flags which
+modify the compilation process where needed. All flags are
+recognized before compilation commences so the flags may be placed
+anywhere on the command line. Flags may be ran together as in "-ro",
+except where a flag is followed by something else; see "-f=" and
+"-d" for examples.
+</para>
+<para>
+-A
+suppresses assembly, leaving the output as assembler code in a
+file whose name is postfixed ".a".
+</para>
+<para>
+-E=&lt;number&gt;
+Set the edition number constant byte to the number given. This is
+an OS-9 convention for memory modules.
+</para>
+<para>
+-O
+inhibits the assembly code optimizer pass. The optimizer will
+shorten object code by about 11% with a comparable increase in speed
+and is recommended for production versions of de-bugged programs.
+</para>
+<para>
+-P
+invokes the profiler to generate function frequency
+statistics after program execution.
+</para>
+<para>
+-R
+suppresses linking library modules into an executable program.
+Outputs are left in files with postfixes ".r".
+</para>
+<para>
+-M=&lt;memory size&gt;
+will instruct the linker to allocate &lt;memory size&gt;
+for data, stack, and parameter area. Memory size may be expressed
+in pages (an integer) or in kilobytes by appending "k" to an 
+integer. For more details of the use of this option, see the
+"Memory Management" section of this manual.
+</para>
+<para>
+-L=&lt;filename&gt;
+specifies a library to be searched by the linker
+before the Standard Library and system interface.
+</para>
+<para>
+-F=&lt;path&gt;
+overrides the above output file naming. The output file
+will be left with &lt;filename&gt; as its name. This flag does not make
+sense in multiple source mode, and either the -a or -r flag is also
+present. The module will be called the last name in &lt;path&gt;.
+</para>
+<para>
+-C
+will output the source code as comments with the assembler code.
+</para>
+<para>
+-S
+stops the generation of stack-checking code. -S should only be
+used with great care when the appication is extremely time-critical
+and when the use of the stack by compiler generated code is fully
+understood.
+</para>
+<para>
+-D&lt;identifier&gt;
+is equivalent to "#define &lt;identifier&gt;" written in
+the source file. -D is useful where different versions of a program
+are maintained in one source file and differentiated by means of the
+"#ifdef" of "#ifndef" pre-processor directives. If the &lt;identifier&gt;
+is used as a macro for expansion by the pre-processor, "1"(one) will
+be the expanded "value" unless the form "-d&lt;identifier&gt;=&lt;string&gt;" is
+used in which case the expansion will be &lt;string&gt;.
+</para>
+<table frame="none">
+<title>Command Line and Option Flag Examples</title>
+<tgroup cols="3">
+<colspec colwidth="1.5in" colname="c1">
+<colspec colwidth="1.5in" colname="c2">
+<colspec colwidth="1.5in" colname="c3">
+<thead>
+    <row>
+	<entry>command line</entry>
+	<entry>action</entry>
+	<entry>output file(s)</entry>
+    </row>
+</thead>
+<tbody>
+    <row>
+	<entry>cc prg.c</entry>
+	<entry>compile to an executable program</entry>
+	<entry>prg</entry>
+	<entry></entry>
+    </row>
+    <row>
+	<entry>cc prg.c -a</entry>
+	<entry>compile to assembly language source code</entry>
+	<entry>prg.a</entry>
+    </row>
+    <row>
+	<entry>cc prg.c -r</entry>
+	<entry>compile to relocatable module</entry>
+	<entry>prg.r</entry>
+    </row>
+    <row>
+	<entry>cc prg1.c prg2.c prg3.c</entry>
+	<entry>compile to executable program</entry>
+	<entry>prg1.r, prg2.r, prg3.r, output</entry>
+    </row>
+    <row>
+	<entry>cc prg1.c prg2.a prg3.r</entry>
+	<entry>compile prg1.c, assemble prg2.a and combine all into
+and executable program</entry>
+	<entry>prg1.r, prg2.r</entry>
+    </row>
+    <row>
+	<entry>cc prg1.c prg2.c -a</entry>
+	<entry>compile to assembly language source code</entry>
+	<entry>prg1.a, prg2.a</entry>
+    </row>
+    <row>
+	<entry>cc prg1.c prg2.c -f=prg</entry>
+	<entry>compile to executable program</entry>
+	<entry>prg</entry>
+    </row>
+    </tbody>
+</tgroup>
+</table>
+
 </section>
 </chapter>
--- a/docs/ccguide/chap4.chapter	Sat Oct 05 16:53:43 2002 +0000
+++ b/docs/ccguide/chap4.chapter	Sun Oct 06 09:10:36 2002 +0000
@@ -26,6 +26,7 @@
 &longjmpref;
 &mallocref;
 &mktempref;
+&printfref;
 &putcref;
 &putsref;
 &qsortref;
--- a/docs/ccguide/chdir.refentry	Sat Oct 05 16:53:43 2002 +0000
+++ b/docs/ccguide/chdir.refentry	Sun Oct 06 09:10:36 2002 +0000
@@ -9,15 +9,39 @@
 <funcsynopsis>
 <funcprototype>
   <funcdef><function>chdir</function></funcdef>
-  <paramdef>type <parameter>arg1</parameter></paramdef>
+  <paramdef>char *<parameter>dirname</parameter></paramdef>
+</funcprototype>
+
+<funcprototype>
+  <funcdef><function>cxdir</function></funcdef>
+  <paramdef>char *<parameter>dirname</parameter></paramdef>
 </funcprototype>
 </funcsynopsis>
 
 </refsynopsisdiv>
 
+<refsect1><title>Assembler Equivalent</title>
+<para>
+os9 I$CHGDIR
+</para>
+</refsect1>
 <refsect1><title>Description</title>
 <para>
-Placeholder
+These calls change the current data directory and the current
+execution directory, respectively, for the running task.
+"Dirname" is a pointer to a string that gives a pathname for
+a directory.
+</para>
+</refsect1>
+<refsect1><title>Diagnostics</title>
+<para>
+Each call returns 0 after a successful call, or -1 if "dirname"
+is not a directory path name, or it is not searchable.
+</para>
+</refsect1>
+<refsect1><title>See Also</title>
+<para>
+OS-9 shell commands "chd" and "chx".
 </para>
 </refsect1>
 </refentry>
--- a/docs/ccguide/chmod.refentry	Sat Oct 05 16:53:43 2002 +0000
+++ b/docs/ccguide/chmod.refentry	Sun Oct 06 09:10:36 2002 +0000
@@ -11,7 +11,8 @@
 </funcsynopsisinfo>
 <funcprototype>
   <funcdef><function>chmod</function></funcdef>
-  <paramdef>type <parameter>arg1</parameter></paramdef>
+  <paramdef>char *<parameter>fname</parameter></paramdef>
+  <paramdef>int <parameter>perm</parameter></paramdef>
 </funcprototype>
 </funcsynopsis>
 
--- a/docs/ccguide/printf.refentry	Sat Oct 05 16:53:43 2002 +0000
+++ b/docs/ccguide/printf.refentry	Sun Oct 06 09:10:36 2002 +0000
@@ -16,7 +16,7 @@
 <funcprototype>
   <funcdef><function>printf</function></funcdef>
   <paramdef>char *<parameter>control</parameter></paramdef>
-  <paramdef>..</paramdef>
+  <paramdef>...</paramdef>
 </funcprototype>
 
 <funcprototype>
--- a/docs/ccguide/qsort.refentry	Sat Oct 05 16:53:43 2002 +0000
+++ b/docs/ccguide/qsort.refentry	Sun Oct 06 09:10:36 2002 +0000
@@ -8,7 +8,11 @@
 <funcsynopsis>
 <funcprototype>
   <funcdef><function>qsort</function></funcdef>
-  <paramdef>type <parameter>arg1</parameter></paramdef>
+  <paramdef>char *<parameter>base</parameter></paramdef>
+  <paramdef>int <parameter>n</parameter></paramdef>
+  <paramdef>int <parameter>size</parameter></paramdef>
+    <paramdef>int <parameter>(* compfunc)</parameter>
+      <funcparams>void *, void *</funcparams></paramdef>
 </funcprototype>
 </funcsynopsis>
 
@@ -16,7 +20,17 @@
 
 <refsect1><title>Description</title>
 <para>
-Placeholder
+Qsort implements the quick-sort algoritm for sortig an
+arbitrary array of items.
+</para>
+<para>
+"Base" is the address of the array of "n" items of size "size".
+"Compfunc" is a pointer to a comparison routine supplied by
+the user. It will be called by qsort with two pointers to
+items in the array for comparison and should return an integer
+which is less than, equal to, or greater than 0 where,
+respectively, the first item is less than, equal to, or greater
+than the second.
 </para>
 </refsect1>
 </refentry>