changeset 552:fcb97f0ba24b

All diagnostics added.
author roug
date Wed, 16 Oct 2002 20:02:31 +0000
parents 0b433a4e95cb
children b93501797906
files docs/ccguide/access.refentry docs/ccguide/asm.appendix docs/ccguide/chain.refentry docs/ccguide/chmod.refentry docs/ccguide/chown.refentry docs/ccguide/creat.refentry docs/ccguide/defdrive.refentry docs/ccguide/errors.appendix docs/ccguide/fflush.refentry docs/ccguide/fopen.refentry docs/ccguide/fread.refentry docs/ccguide/fseek.refentry docs/ccguide/getc.refentry docs/ccguide/gets.refentry docs/ccguide/kill.refentry docs/ccguide/lseek.refentry docs/ccguide/mknod.refentry docs/ccguide/modload.refentry docs/ccguide/open.refentry docs/ccguide/os9fork.refentry docs/ccguide/putc.refentry docs/ccguide/read.refentry docs/ccguide/sbrk.refentry docs/ccguide/scanf.refentry docs/ccguide/setpr.refentry docs/ccguide/setuid.refentry docs/ccguide/unlink.refentry docs/ccguide/write.refentry
diffstat 28 files changed, 806 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/docs/ccguide/access.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/access.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -20,4 +20,11 @@
 Placeholder
 </para>
 </refsect1>
+<refsect1><title>Diagnostics</title>
+<para>
+The appropiate error indication, if a value of -1 is returned,
+may be found in "errno".
+</para>
+</refsect1>
+
 </refentry>
--- a/docs/ccguide/asm.appendix	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/asm.appendix	Wed Oct 16 20:02:31 2002 +0000
@@ -162,6 +162,14 @@
 <section>
 <title>Labels</title>
 <para>
+Sometimes it is necessary to use labels within a macro. Labels are
+specified by <quote>\@</quote>. Each time the macro is called, a unique label
+will be generated to avoid multiple definition errors. Within the
+expanded code <quote>\@</quote> will take on the form <quote>@xxx</quote>, where xxx
+will be a decimal number between 000 to 999.
+</para>
+<para>
+More...
 </para>
 </section>
 
--- a/docs/ccguide/chain.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/chain.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -8,7 +8,12 @@
 <funcsynopsis>
 <funcprototype>
   <funcdef><function>chain</function></funcdef>
-  <paramdef>type <parameter>arg1</parameter></paramdef>
+  <paramdef>char *<parameter>modname</parameter></paramdef>
+  <paramdef>int <parameter>paramsize</parameter></paramdef>
+  <paramdef>char *<parameter>paramptr</parameter></paramdef>
+  <paramdef>int <parameter>type</parameter></paramdef>
+  <paramdef>int <parameter>lang</parameter></paramdef>
+  <paramdef>int <parameter>datasize</parameter></paramdef>
 </funcprototype>
 </funcsynopsis>
 
--- a/docs/ccguide/chmod.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/chmod.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -23,4 +23,12 @@
 Placeholder
 </para>
 </refsect1>
+<refsect1><title>Diagnostics</title>
+<para>
+A successful call returns 0. A -1 is returned if the
+caller is not entitled to change permissions of "fname" cannot
+be found.
+</para>
+</refsect1>
+
 </refentry>
--- a/docs/ccguide/chown.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/chown.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -19,4 +19,10 @@
 Placeholder
 </para>
 </refsect1>
+<refsect1><title>Diagnostics</title>
+<para>
+Zero is returned from a successful call. -1 is returned from on error.
+</para>
+</refsect1>
+
 </refentry>
--- a/docs/ccguide/creat.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/creat.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -29,6 +29,14 @@
 </para>
 </refsect1>
 
+<refsect1><title>Diagnostics</title>
+<para>
+This call returns -1 if there are too many files open. If the
+pathname cannot be searched, if permission to write is denied,
+or if the file exists and is a directory.
+</para>
+</refsect1>
+
 <refsect1><title>See Also</title>
 <para>
 <link linkend="write">write()</link>,
--- a/docs/ccguide/defdrive.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/defdrive.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -7,8 +7,8 @@
 <refsynopsisdiv>
 <funcsynopsis>
 <funcprototype>
-  <funcdef><function>defdrive</function></funcdef>
-  <paramdef>type <parameter>arg1</parameter></paramdef>
+  <funcdef>char *<function>defdrive</function></funcdef>
+  <void>
 </funcprototype>
 </funcsynopsis>
 
@@ -16,7 +16,18 @@
 
 <refsect1><title>Description</title>
 <para>
-Placeholder
+A call to defdrive returns a pointer to a string containing the
+name of the default system drive. The method used is to
+consult the "Init" module for the default directory name. The
+name is copied to a static data area and a pointer to it is
+returned.
 </para>
 </refsect1>
+
+<refsect1><title>Diagnostics</title>
+<para>
+-1 is returned if the "Init" module cannot be linked to.
+</para>
+</refsect1>
+
 </refentry>
--- a/docs/ccguide/errors.appendix	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/errors.appendix	Wed Oct 16 20:02:31 2002 +0000
@@ -24,5 +24,457 @@
 </listitem>
 </varlistentry>
 
+<varlistentry><term>argument error</term>
+<listitem>
+<para>
+Function argument declared as type struct, union or function.
+Pointers to such types, however are allowed. (10.1)
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term></term>
+<listitem>
+<para>
+Unmatched " string delimiters. (2.5)
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>while expected</term>
+<listitem>
+<para>
+No while found for do statements (9.5)
+</para>
+</listitem>
+</varlistentry>
+
 </variablelist>
 </appendix>
--- a/docs/ccguide/fflush.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/fflush.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -22,4 +22,11 @@
 Placeholder
 </para>
 </refsect1>
+<refsect1><title>Diagnostics</title>
+<para>
+EOF is returned if "fp" does not refer to an output file or
+there is an error writing to the file.
+</para>
+</refsect1>
+
 </refentry>
--- a/docs/ccguide/fopen.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/fopen.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -10,8 +10,22 @@
 #include &lt;stdio.h&gt;
 </funcsynopsisinfo>
 <funcprototype>
-  <funcdef><function>fopen</function></funcdef>
-  <paramdef>type <parameter>arg1</parameter></paramdef>
+  <funcdef>FILE *<function>fopen</function></funcdef>
+  <paramdef>char *<parameter>filename</parameter></paramdef>
+  <paramdef>char *<parameter>action</parameter></paramdef>
+</funcprototype>
+
+<funcprototype>
+  <funcdef>FILE *<function>freopen</function></funcdef>
+  <paramdef>char *<parameter>filename</parameter></paramdef>
+  <paramdef>char *<parameter>action</parameter></paramdef>
+  <paramdef>FILE *<parameter>streak</parameter></paramdef>
+</funcprototype>
+
+<funcprototype>
+  <funcdef>FILE *<function>fdopen</function></funcdef>
+  <paramdef>FILE *<parameter>filedes</parameter></paramdef>
+  <paramdef>char *<parameter>action</parameter></paramdef>
 </funcprototype>
 </funcsynopsis>
 
@@ -19,7 +33,128 @@
 
 <refsect1><title>Description</title>
 <para>
-Placeholder
+Fopen returns a pointer to a file structure (file pointer) if
+the file name in the string pointed to by "filename" can be
+validly opened with the action in the string pointed to by
+"action".
+</para>
+<para>
+The valid actions are:
+<informaltable frame="none">
+<tgroup cols="2">
+<colspec colwidth="1in">
+<tbody>
+<row>
+<entry><quote>r</quote></entry>
+<entry>open for reading</entry>
+</row>
+<row>
+<entry><quote>w</quote></entry>
+<entry>create for writing</entry>
+</row>
+<row>
+<entry><quote>a</quote></entry>
+<entry>append(write) at end of file, or create for writing</entry>
+</row>
+<row>
+<entry><quote>r+</quote></entry>
+<entry>open for update</entry>
+</row>
+<row>
+<entry><quote>w+</quote></entry>
+<entry>create for update</entry>
+</row>
+<row>
+<entry><quote>a+</quote></entry>
+<entry>create or open for update at end of file</entry>
+</row>
+<row>
+<entry><quote>d</quote></entry>
+<entry>directory read</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</para>
+<para>
+Any action may have an <quote>x</quote> after the initial letter which
+indicates to <quote>fopen()</quote> that it should look in the current
+execution directory if a full path is not given, and
+the x also specifies that the file should have execute permission.
+<informalexample>
+<para>
+E.g. f = fopen(<quote>fred</quote>,<quote>wx</quote>);
+</para>
+</informalexample>
+</para>
+<para>
+Opening for write will perform a <quote>creat()</quote>. If a file with the
+same name exists when the file is opened for write, it will be truncated
+to zero length. Append means open for write and
+position to the end of the file. Writes to the file via
+<quote>putc()</quote> etc. will extend the file. Only if the file does not
+already exist will it be created.
+</para>
+<para>
+NOTE that the type of a file structure is pre-defined in
+<quote>stdio.h</quote> as FILE, so that a user program may decale or define
+a file pointer by, for example, FILE *f;
+</para>
+<para>
+Three file pointers are available and can be considered open
+the moment the program runs:
+
+<informaltable frame="none">
+<tgroup cols="2">
+<colspec colwidth="1in">
+<tbody>
+<row>
+<entry>stdin</entry>
+<entry>the standard input - equivalent to path number 0</entry>
+</row>
+<row>
+<entry>stdout</entry>
+<entry>the standard output - equivalent to path number 1</entry>
+</row>
+<row>
+<entry>stderr</entry>
+<entry>the standard error output - equivalent to path number 2</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</para>
+<para>
+All files are automatically buffered except stderr, unless a
+file is made unbuffered by a call to setbuf() (q.v.).
+</para>
+<para>
+Freopen is usually used to attach stdin, stdout, and stderr to
+specified files. Freopen substitutes the file passed to it
+instead of the open stream. The original stream is closed.
+NOTE that the original stream will be closed even if the open
+does not succeed.
+</para>
+<para>
+Fdopen associates a stream with a file descriptor. The streams
+type(r,w,a) must be the same as the mode of the open file.
+</para>
+</refsect1>
+
+<refsect1><title>Caveats</title>
+<para>
+The <quote>action</quote> passed as an argument to fopen must be a pointer
+to a string, <emphasis>not</emphasis> a character. For example
+<literallayout>
+fp = fopen(<quote>fred</quote>,<quote>r</quote>); is correct but
+fp = fopen(<quote>fred</quote>,'r'); is not.
+</literallayout>
+</para>
+</refsect1>
+
+<refsect1><title>Diagnostics</title>
+<para>
+Fopen returns NULL (0) if the call was unsuccessful.
 </para>
 </refsect1>
 
--- a/docs/ccguide/fread.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/fread.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -22,6 +22,11 @@
 Placeholder
 </para>
 </refsect1>
+<refsect1><title>Diagnostics</title>
+<para>
+Both functions return 0(NULL) at the end of file or error.
+</para>
+</refsect1>
 
 <refsect1><title>See Also</title>
 <para>
--- a/docs/ccguide/fseek.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/fseek.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -23,6 +23,12 @@
 </para>
 </refsect1>
 
+<refsect1><title>Diagnostics</title>
+<para>
+Fseek returns -1 if the call is invalid.
+</para>
+</refsect1>
+
 <refsect1><title>See Also</title>
 <para>
 System call
--- a/docs/ccguide/getc.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/getc.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -23,6 +23,12 @@
 </para>
 </refsect1>
 
+<refsect1><title>Diagnostics</title>
+<para>
+EOF(-1) is returned for end of file or error.
+</para>
+</refsect1>
+
 <refsect1><title>See Also</title>
 <para>
 <link linkend="putc">Putc()</link>,
--- a/docs/ccguide/gets.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/gets.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -23,6 +23,19 @@
 </para>
 </refsect1>
 
+<refsect1><title>Caveats</title>
+<para>
+The different treatment of the "\n" by these functions is
+retained here for portability reasons.
+</para>
+</refsect1>
+
+<refsect1><title>Diagnostics</title>
+<para>
+Both functions return NULL on end-of-file or error.
+</para>
+</refsect1>
+
 <refsect1><title>See Also</title>
 <para>
 <link linkend="puts">puts()</link>,
--- a/docs/ccguide/kill.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/kill.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -23,6 +23,14 @@
 </para>
 </refsect1>
 
+<refsect1><title>Diagnostics</title>
+<para>
+Kill returns 0 from a successful call and -1 if the task does
+not exist, the effective user ids do not match, or the user is
+not the system manager.
+</para>
+</refsect1>
+
 <refsect1><title>See Also</title>
 <para>
 <link linkend="signal">signal()</link>,
--- a/docs/ccguide/lseek.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/lseek.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -26,6 +26,13 @@
 </para>
 </refsect1>
 
+<refsect1><title>Diagnostics</title>
+<para>
+-1 is returned if "pn" is a bad path number, or attempting to
+seek to a position before the beginning of a file.
+</para>
+</refsect1>
+
 <refsect1><title>See Also</title>
 <para>
 <link linkend="creat">creat()</link>,
--- a/docs/ccguide/mknod.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/mknod.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -28,4 +28,11 @@
 Placeholder
 </para>
 </refsect1>
+<refsect1><title>Diagnostics</title>
+<para>
+Zero is returned if the directory has been successfully made;
+-1 if the file already exists.
+</para>
+</refsect1>
+
 </refentry>
--- a/docs/ccguide/modload.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/modload.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -32,6 +32,12 @@
 </para>
 </refsect1>
 
+<refsect1><title>Diagnostics</title>
+<para>
+-1 is returned on error.
+</para>
+</refsect1>
+
 <refsect1><title>See Also</title>
 <para>
 <link linkend="munlink">munlink()</link>
--- a/docs/ccguide/open.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/open.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -26,6 +26,14 @@
 </para>
 </refsect1>
 
+<refsect1><title>Diagnostics</title>
+<para>
+-1 is returned if the file does not exist, if the pathname
+cannot be searched, if too many files are already open, or if
+the file permissions deny the requested mode.
+</para>
+</refsect1>
+
 <refsect1><title>See Also</title>
 <para>
 <link linkend="creat">creat()</link>,
--- a/docs/ccguide/os9fork.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/os9fork.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -8,7 +8,12 @@
 <funcsynopsis>
 <funcprototype>
   <funcdef><function>os9fork</function></funcdef>
-  <paramdef>type <parameter>arg1</parameter></paramdef>
+  <paramdef>char *<parameter>modname</parameter></paramdef>
+  <paramdef>int <parameter>paramsize</parameter></paramdef>
+  <paramdef>char *<parameter>paramptr</parameter></paramdef>
+  <paramdef>int <parameter>type</parameter></paramdef>
+  <paramdef>int <parameter>lang</parameter></paramdef>
+  <paramdef>int <parameter>datasize</parameter></paramdef>
 </funcprototype>
 </funcsynopsis>
 
@@ -25,4 +30,11 @@
 Placeholder
 </para>
 </refsect1>
+<refsect1><title>Diagnostics</title>
+<para>
+-1 will be returned on error, or the ID number of the child
+process will be returned on success.
+</para>
+</refsect1>
+
 </refentry>
--- a/docs/ccguide/putc.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/putc.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -23,6 +23,13 @@
 </para>
 </refsect1>
 
+<refsect1><title>Diagnostics</title>
+<para>
+Putc and putchar return the character argument from a
+successful call, and EOF on end-of-file or error.
+</para>
+</refsect1>
+
 <refsect1><title>See Also</title>
 <para>
 <link linkend="fopen">fopen()</link>,
--- a/docs/ccguide/read.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/read.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -29,6 +29,18 @@
 </para>
 </refsect1>
 
+<refsect1><title>Diagnostics</title>
+<para>
+Read and readln return the number of bytes actually read (0 at
+end-of-file) or -1 for physical i/o errors, a bad path number,
+or a ridicolous "count".
+</para>
+<para>
+NOTE that end-of-file is not considered an error, and no error
+indication is returned. Zero is returned on EOF.
+</para>
+</refsect1>
+
 <refsect1><title>See Also</title>
 <para>
 <link linkend="open">open()</link>,
--- a/docs/ccguide/sbrk.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/sbrk.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -19,4 +19,12 @@
 Placeholder
 </para>
 </refsect1>
+
+<refsect1><title>Diagnostics</title>
+<para>
+Sbrk and ibrk return -1 if the requested amount of contiguous
+memory is unavailable.
+</para>
+</refsect1>
+
 </refentry>
--- a/docs/ccguide/scanf.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/scanf.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -23,6 +23,14 @@
 </para>
 </refsect1>
 
+<refsect1><title>Diagnostics</title>
+<para>
+These functions return EOF on end of input or error and a count
+which is shorter than expected for unexpected or unmatched
+items.
+</para>
+</refsect1>
+
 <refsect1><title>See Also</title>
 <para>
 <link linkend="atof">atoi(), atof()</link>,
--- a/docs/ccguide/setpr.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/setpr.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -25,4 +25,12 @@
 Placeholder
 </para>
 </refsect1>
+
+<refsect1><title>Diagnostics</title>
+<para>
+The call will return -1 if the process does not have the same
+user id as the caller.
+</para>
+</refsect1>
+
 </refentry>
--- a/docs/ccguide/setuid.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/setuid.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -26,6 +26,13 @@
 </para>
 </refsect1>
 
+<refsect1><title>Diagnostics</title>
+<para>
+Zero id returned from a successful call, and -1 is returned on
+error.
+</para>
+</refsect1>
+
 <refsect1><title>See Also</title>
 <para>
 <link linkend="getuid">getuid()</link>
--- a/docs/ccguide/unlink.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/unlink.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -25,4 +25,20 @@
 Placeholder
 </para>
 </refsect1>
+
+<refsect1><title>Diagnostics</title>
+<para>
+Zero is returned from a successful call, -1 if the file does
+not exist, if its directory is write-protected, or cannot be
+searched, if the file is a non-empty directory or a device.
+</para>
+</refsect1>
+
+<refsect1><title>See Also</title>
+<para>
+OS-9 command "kill"
+<!-- The original manual referenced link() here, but no such system call exists.
+     Too much inspiration from UNIX manuals :-) -->
+</para>
+</refsect1>
 </refentry>
--- a/docs/ccguide/write.refentry	Wed Oct 16 20:02:22 2002 +0000
+++ b/docs/ccguide/write.refentry	Wed Oct 16 20:02:31 2002 +0000
@@ -30,6 +30,13 @@
 </para>
 </refsect1>
 
+<refsect1><title>Diagnostics</title>
+<para>
+-1 is returned if "pn" is a bad path number, of "count" is
+ridiculous or on physical i/o error.
+</para>
+</refsect1>
+
 <refsect1><title>See Also</title>
 <para>
 <link linkend="creat">creat()</link>,