Index: doc/new_chapters/files.t
===================================================================
--- doc/new_chapters/files.t	(revision 6e62b72e39154aaad625634239f6eefc6b11bff1)
+++ doc/new_chapters/files.t	(revision 982ed3f825f9afe0c8f8769b96ee53cfd54f6cd3)
@@ -42,11 +42,17 @@
 @item @code{utime} - Change access and/or modification times of an inode
 @item @code{ftruncate} - Truncate a file to a specified length
+@itme @code{truncate} - Truncate a file to a specified length
 @item @code{pathconf} - Gets configuration values for files
 @item @code{fpathconf} - Get configuration values for files
+@itme @code{mknod} - Create a directory
 @end itemize
 
 @section Background
 
+There is currently no text in this section.
+
 @section Operations
+
+There is currently no text in this section.
 
 @section Directives
@@ -96,5 +102,5 @@
 
 @item ENOTDIR
-@item{Name} is not a directory.
+@code{name} is not a directory.
 
 @end table
@@ -150,9 +156,9 @@
 a call for another directory.
 
-@subheading NOTES:
+@subheading NOTES: 
 
 If @code{ptr} is not a pointer returned by @code{malloc()}, @code{calloc()}, or 
-@code{realloc()} or has been deallocated with @code{free()} or @code{realloc()}, 
-the results are not portable and are probably disastrous.
+@code{realloc()} or has been deallocated with @code{free()} or
+@code{realloc()}, the results are not portable and are probably disastrous.
 
 The routine is implemented in Cygnus newlib.
@@ -177,5 +183,7 @@
 @end ifset
 
-@subheading STATUS CODES: No value is returned.
+@subheading STATUS CODES:
+
+No value is returned.
 
 @subheading DESCRIPTION:
@@ -185,5 +193,7 @@
 directory stream to refer to the current state of the directory.
 
-@subheading NOTES:
+@subheading NOTES: 
+
+NONE
 
 If @code{dirp} is not a pointer by @code{opendir()}, the results are
@@ -265,8 +275,7 @@
 directory stream @code{dir}.
 
-@subheading NOTES:
+@subheading NOTES: 
 
 The routine is implemented in Cygnus newlib.
-
 
 @page
@@ -303,5 +312,7 @@
 @code{closedir()}.
 
-@subheading NOTES:
+@subheading NOTES: 
+
+NONE
 
 The argument to @code{closedir()} must be a pointer returned by 
@@ -359,5 +370,5 @@
 @subheading NOTES:
 
-None
+NONE
 
 @page
@@ -434,30 +445,42 @@
 
 @table @b
+
 @item EACCES
 Search permission is denied for a directory in a file's path prefix.
+
 @item EEXIST
 The named file already exists.
+
 @item EINTR
 Function was interrupted by a signal.
+
 @item EISDIR
 Attempt to open a directory for writing or to rename a file to be a
 directory.
+
 @item EMFILE
 Too many file descriptors are in use by this process.
+
 @item ENAMETOOLONG
 Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in
 effect.
+
 @item ENFILE
 Too many files are currently open in the system.
+
 @item ENOENT
 A file or directory does not exist.
+
 @item ENOSPC
 No space left on disk.
+
 @item ENOTDIR
 A component of the specified pathname was not a directory when a directory
 was expected.
+
 @item ENXIO
 No such device.  This error may also occur when a device is not ready, for 
 example, a tape drive is off-line.
+
 @item EROFS
 Read-only file system.
@@ -521,6 +544,7 @@
 descriptor.
 
-@subheading NOTES:
-
+@subheading NOTES: 
+
+NONE
 
 @page
@@ -550,30 +574,41 @@
 @item EEXIST
 @code{path} already exists and O_CREAT and O_EXCL were used.
+
 @item EISDIR
 @code{path} refers to a directory and the access requested involved
 writing
+
 @item ETXTBSY
 @code{path} refers to an executable image which is currently being
 executed and write access was requested
+
 @item EFAULT
 @code{path} points outside your accessible address space
+
 @item EACCES
 The requested access to the file is not allowed, or one of the 
 directories in @code{path} did not allow search (execute) permission.
+
 @item ENAMETOOLONG
 @code{path} was too long.
+
 @item ENOENT
 A directory component in @code{path} does not exist or is a dangling
 symbolic link.
+
 @item ENOTDIR
 A component used as a directory in @code{path} is not, in fact, a 
 directory.
+
 @item EMFILE
 The process alreadyh has the maximum number of files open.
+
 @item ENFILE
 The limit on the total number of files open on the system has been 
 reached.
+
 @item ENOMEM
 Insufficient kernel memory was available.
+
 @item EROFS
 @code{path} refers to a file on a read-only filesystem and write access
@@ -589,5 +624,5 @@
 @subheading NOTES:
 
-None
+NONE
 
 The routine is implemented in Cygnus newlib.
@@ -622,7 +657,7 @@
 created file.
 
-@subheading NOTES:
-
-None
+@subheading NOTES: 
+
+NONE
 
 The @code{cmask} argument should have only permission bits set.  All other 
@@ -656,25 +691,34 @@
 
 @table @b
+
 @item EACCES
 Search permission is denied for a directory in a file's path prefix
+
 @item EEXIST
 The named file already exists.
+
 @item EMLINK
 The number of links would exceed @code{LINK_MAX}.
+
 @item ENAMETOOLONG
 Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in
 effect.
+
 @item ENOENT
 A file or directory does not exist.
 @item ENOSPC
 No space left on disk.
+
 @item ENOTDIR
 A component of the specified pathname was not a directory when a directory
 was expected.
+
 @item EPERM
 Operation is not permitted.  Process does not have the appropriate priviledges
 or permissions to perform the requested operations.
+
 @item EROFS
 Read-only file system.
+
 @item EXDEV
 Attempt to link a file to another file system.
@@ -684,8 +728,8 @@
 @subheading DESCRIPTION:
 
-The @code{link} function atomically creates a new link for an existing file
+The @code{link()} function atomically creates a new link for an existing file
 and increments the link count for the file.
 
-If the @code{link} function fails, no directories are modified.
+If the @code{link()} function fails, no directories are modified.
 
 The @code{existing} argument should not be a directory.
@@ -695,5 +739,5 @@
 @subheading NOTES:
 
-None
+NONE
 
 @page
@@ -722,18 +766,25 @@
 @item EACCES
 Search permission is denied for a directory in a file's path prefix
+
 @item EEXIST
 The name file already exist.  
+
 @item EMLINK
 The number of links would exceed LINK_MAX
+
 @item ENAMETOOLONG
 Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in
 effect.
+
 @item ENOENT
 A file or directory does not exist.
+
 @item ENOSPC
 No space left on disk.
+
 @item ENOTDIR
 A component of the specified pathname was not a directory when a directory
 was expected.
+
 @item EROFS
 Read-only file system.
@@ -753,5 +804,5 @@
 @subheading NOTES:
 
-None
+NONE
 
 @page
@@ -781,13 +832,18 @@
 @item EACCES
 Search permission is denied for a directory in a file's path prefix
+
 @item EEXIST
 The named file already exists.
+
 @item ENOENT
 A file or directory does not exist.
+
 @item ENOSPC
 No space left on disk.
+
 @item ENOTDIR
 A component of the specified @code{path} was not a directory when a directory
 was expected.
+
 @item EROFS
 Read-only file system.
@@ -804,5 +860,5 @@
 @subheading NOTES:
 
-None
+NONE
 
 @page
@@ -829,17 +885,23 @@
 @item EACCES
 Search permission is denied for a directory in a file's path prefix
+
 @item EBUSY
 The directory is in use.
+
 @item ENAMETOOLONG
 Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in
 effect.
+
 @item ENOENT
 A file or directory does not exist.
+
 @item ENOTDIR
 A component of the specified @code{path} was not a directory when a directory
 was expected.
+
 @item EPERM
 Operation is not permitted.  Process does not have the appropriate priviledges
 or permissions to perform the requested operations.
+
 @item EROFS
 Read-only file system.
@@ -856,5 +918,5 @@
 @subheading NOTES:
 
-None
+NONE
 
 @page
@@ -882,34 +944,46 @@
 The filesystem containing @code{pathname} does not support the removal
 of directories.
+
 @item EFAULT
 @code{pathname} points ouside your accessible address space.
+
 @item EACCES
 Write access to the directory containing @code{pathname} was not
 allowed for the process's effective uid, or one of the directories in 
 @code{pathname} did not allow search (execute) permission.
+
 @item EPERM
 The directory containing @code{pathname} has the stickybit (S_ISVTX) 
 set and the process's effective uid is neither the uid of the file to 
 be delected nor that of the director containing it.
+
 @item ENAMETOOLONG
 @code{pathname} was too long.
+
 @item ENOENT
 A dirctory component in @code{pathname} does not exist or is a 
 dangling sybolic link.
+
 @item ENOTDIR
 @code{pathname}, or a component used as a directory in @code{pathname},
 is not, in fact, a directory.
+
 @item ENOTEMPTY
 @code{pathname} contains entries other than . and .. .
+
 @item EBUSY
 @code{pathname} is the current working directory or root directory of 
 some process
+
 @item EBUSY
 @code{pathname} is the current directory or root directory of some 
 process.
+
 @item ENOMEM
 Insufficient kernel memory was available
+
 @item EROGS
 @code{pathname} refers to a file on a read-only filesystem.
+
 @item ELOOP
 @code{pathname} contains a reference to a circular symbolic link
@@ -924,5 +998,5 @@
 @subheading NOTES:
 
-None
+NONE
 
 @page
@@ -950,29 +1024,41 @@
 @item EACCES
 Search permission is denied for a directory in a file's path prefix.
+
 @item EBUSY
 The directory is in use.
+
 @item EEXIST
 The named file already exists.
+
 @item EINVAL
 Invalid argument.
+
 @item EISDIR
 Attempt to open a directory for writing or to rename a file to be a 
 directory.
+
 @item EMLINK
 The number of links would exceed LINK_MAX.
+
 @item ENAMETOOLONG
 Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is
 in effect.
+
 @item ENOENT
 A file or directory does no exist.
+
 @item ENOSPC
 No space left on disk.
+
 @item ENOTDIR
 A component of the specified pathname was not a directory when a 
 directory was expected.
+
 @item ENOTEMPTY
 Attempt to delete or rename a non-empty directory.
+
 @item EROFS
 Read-only file system
+
 @item EXDEV
 Attempt to link a file to another file system.
@@ -1026,11 +1112,15 @@
 @item EACCES
 Search permission is denied for a directory in a file's path prefix.
+
 @item EBADF
 Invalid file descriptor.
+
 @item ENAMETOOLONG
 Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is
 in effect.
+
 @item ENOENT
 A file or directory does not exist.
+
 @item ENOTDIR
 A component of the specified pathname was not a directory when a 
@@ -1049,5 +1139,5 @@
 @subheading NOTES:
 
-None
+NONE
 
 @page
@@ -1087,4 +1177,6 @@
 @subheading NOTES:
 
+NONE
+
 @page
 @subsection access - Check user's permissions for a file
@@ -1112,16 +1204,22 @@
 The requested access would be denied, either to the file itself or
 one of the directories in @code{pathname}.
+
 @item EFAULT
 @code{pathname} points outside your accessible address space.
+
 @item EINVAL
 @code{Mode} was incorrectly specified.
+
 @item ENAMETOOLONG
 @code{pathname} is too long.
+
 @item ENOENT
 A directory component in @code{pathname} would have been accessible but
 does not exist or was a dangling symbolic link.
+
 @item ENOTDIR
 A component used as a directory in @code{pathname} is not, in fact, 
 a directory.
+
 @item ENOMEM
 Insufficient kernel memory was available.
@@ -1140,5 +1238,5 @@
 @subheading NOTES:
 
-None
+NONE
 
 @page
@@ -1167,15 +1265,20 @@
 @item EACCES
 Search permission is denied for a directory in a file's path prefix
+
 @item ENAMETOOLONG
 Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in
 effect.
+
 @item ENOENT
 A file or directory does not exist.
+
 @item ENOTDIR
 A component of the specified pathname was not a directory when a directory
 was expected.
+
 @item EPERM
 Operation is not permitted.  Process does not have the appropriate priviledges
 or permissions to perform the requested operations.
+
 @item EROFS
 Read-only file system.
@@ -1193,4 +1296,6 @@
 @subheading NOTES:
 
+NONE
+
 @page
 @subsection fchmod - Changes permissions of a file 
@@ -1218,25 +1323,35 @@
 @item EACCES
 Search permission is denied for a directory in a file's path prefix.
+
 @item EBADF
 The descriptor is not valid.
+
 @item EFAULT
 @code{path} points outside your accessible address space.
+
 @item EIO
 A low-level I/o error occurred while modifying the inode.
+
 @item ELOOP
 @code{path} contains a circular reference
+
 @item ENAMETOOLONG
 Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is
 in effect.
+
 @item ENOENT
 A file or directory does no exist.
+
 @item ENOMEM
 Insufficient kernel memory was avaliable.
+
 @item ENOTDIR
 A component of the specified pathname was not a directory when a 
 directory was expected.
+
 @item EPERM
 The effective UID does not match the owner of the file, and is not 
 zero
+
 @item EROFS
 Read-only file system
@@ -1250,5 +1365,5 @@
 @subheading NOTES:
 
-None
+NONE
 
 @page
@@ -1286,4 +1401,6 @@
 @subheading NOTES:
 
+NONE
+
 @page
 @subsection chown - Changes the owner and/or group of a file.
@@ -1312,17 +1429,23 @@
 @item EACCES
 Search permission is denied for a directory in a file's path prefix
+
 @item EINVAL
 Invalid argument
+
 @item ENAMETOOLONG
 Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in
 effect.
+
 @item ENOENT
 A file or directory does not exist.
+
 @item ENOTDIR
 A component of the specified pathname was not a directory when a directory
 was expected.
+
 @item EPERM
 Operation is not permitted.  Process does not have the appropriate priviledges
 or permissions to perform the requested operations.
+
 @item EROFS
 Read-only file system.
@@ -1375,4 +1498,5 @@
 @item EACCES
 Permission to write the file is denied
+
 @item ENOENT
 @code{Filename} does not exist
@@ -1387,5 +1511,7 @@
 access and modification times of the file are set to the current time.  
 
-@subheading NOTES: None
+@subheading NOTES:
+
+NONE
 
 @page
@@ -1399,6 +1525,6 @@
 
 int ftrunctate(
-  const char *path,
-  size_t      length
+  int     fd,
+  size_t  length
 );
 @end example
@@ -1457,10 +1583,89 @@
 @subheading DESCRIPTION:
 
-2code{Truncate} causes the file named by @code{path} or referenced by 
+@code{truncate()} causes the file named by @code{path} or referenced by 
 @code{fd} to be truncated to at most @code{length} bytes in size.  If the  
 file previously was larger than this size, the extra data is lost.  With 
-@code{ftruncate}, the file must be open for writing.
-
-@subheading NOTES: None
+@code{ftruncate()}, the file must be open for writing.
+
+@subheading NOTES:
+
+NONE
+
+@page
+@subsection truncate - truncate a file to a specified length
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+#include <unistd.h>
+
+int trunctate(
+  const char *path,
+  size_t      length
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item ENOTDIR
+A component of the path prefix is not a directory.
+
+@item EINVAL
+The pathname contains a character with the high-order bit set.
+
+@item ENAMETOOLONG
+A component of a pathname exceeded 255 characters, or an entire
+path name exceeded 1023 characters.
+
+@item ENOENT
+The named file does not exist.
+
+@item EACCES
+The named file is not writable by the user.
+
+@item EACCES
+Search permission is denied for a component of the path prefix.
+
+@item ELOOP
+Too many symbolic links were encountered in translating the 
+pathname
+
+@item EISDIR
+The named file is a directory.
+
+@item EROFS
+The named file resides on a read-only file system
+
+@item ETXTBSY
+The file is a pure procedure (shared text) file that is being 
+executed
+
+@item EIO
+An I/O error occurred updating the inode.
+
+@item EFAULT
+@code{Path} points outside the process's allocated address space.
+
+@item EBADF
+The @code{fd} is not a valid descriptor.
+
+@end table
+
+@subheading DESCRIPTION:
+
+@code{truncate()} causes the file named by @code{path} or referenced by 
+@code{fd} to be truncated to at most @code{length} bytes in size.  If the  
+file previously was larger than this size, the extra data is lost.  With 
+@code{ftruncate()}, the file must be open for writing.
+
+@subheading NOTES:
+
+NONE
 
 @page
@@ -1504,4 +1709,97 @@
 
 @end table
+
+@subheading DESCRIPTION:
+
+@code{pathconf()} gets a value for the configuration option @code{name}
+for the open file descriptor @code{filedes}.
+
+The possible values for @code{name} are:
+
+@table @b
+@item _PC_LINK_MAX
+returns the maximum number of links to the file.  If @code{filedes} or 
+@code{path} refer to a directory, then the value applies to the whole
+directory.  The corresponding macro is @code{_POSIX_LINK_MAX}.
+
+@item _PC_MAX_CANON
+returns  the maximum length of a formatted input line, where @code{filedes}
+or @code{path} must refer to a terminal.  The corresponding macro is 
+@code{_POSIX_MAX_CANON}.
+
+@item _PC_MAX_INPUT
+returns the maximum length of an input line, where @code{filedes} or 
+@code{path} must refer to a terminal.  The corresponding macro is 
+@code{_POSIX_MAX_INPUT}.
+
+@item _PC_NAME_MAX
+returns the maximum length of a filename in the directory @code{path} or 
+@code{filedes}.  The process is allowed to create. The corresponding macro 
+is @code{_POSIX_NAME_MAX}.
+
+@item _PC_PATH_MAX
+returns the maximum length of a relative pathname when @code{path} or 
+@code{filedes} is the current working directory.  The corresponding macro 
+is @code{_POSIX_PATH_MAX}.
+
+@item _PC_PIPE_BUF
+returns the size of the pipe buffer, where @code{filedes} must refer to a 
+pipe or FIFO and @code{path} must refer to a FIFO.  The corresponding macro 
+is @code{_POSIX_PIPE_BUF}.
+
+@item _PC_CHOWN_RESTRICTED
+returns nonzero if the chown(2) call may not be used on this file.  If 
+@code{filedes} or @code{path} refer to a directory, then this applies to all 
+files in that directory.  The corresponding macro is
+@code{_POSIX_CHOWN_RESTRICTED}.
+
+@end table
+
+@subheading NOTES:
+
+Files with name lengths longer than the value returned for @code{name} equal 
+@code{_PC_NAME_MAX} may exist in the given directory.
+
+@page
+@subsection fpathconf - Gets configuration values for files
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+#include <unistd.h>
+
+int fpathconf(
+  int filedes, 
+  int name
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item EINVAL
+Invalid argument
+
+@item EACCES
+Permission to write the file is denied
+@item ENAMETOOLONG
+
+Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC
+is in effect.
+
+@item ENOENT
+A file or directory does not exist
+
+@item ENOTDIR
+A component of the specified @code{path} was not a directory whan a 
+directory was expected.
+
+@end table
+
 
 @subheading DESCRIPTION:
@@ -1521,126 +1819,121 @@
 returns  the maximum length of a formatted input line, where @code{filedes}
 or @code{path} must refer to a terminal.  The corresponding macro is 
-_POSIX_MAX_CANON.
+@code{_POSIX_MAX_CANON}.
 
 @item _PC_MAX_INPUT
 returns the maximum length of an input line, where @code{filedes} or 
 @code{path} must refer to a terminal.  The corresponding macro is 
-_POSIX_MAX_INPUT.
+@code{_POSIX_MAX_INPUT}.
 
 @item _PC_NAME_MAX
 returns the maximum length of a filename in the directory @code{path} or 
 @code{filedes}.  The process is allowed to create. The corresponding macro 
-is _POSIX_NAME_MAX.
+is @code{_POSIX_NAME_MAX}.
 
 @item _PC_PATH_MAX
 returns the maximum length of a relative pathname when @code{path} or 
 @code{filedes} is the current working directory.  The corresponding macro 
-is _POSIX_PATH_MAX.
+is @code{_POSIX_PATH_MAX}.
 
 @item _PC_PIPE_BUF
 returns the size of the pipe buffer, where @code{filedes} must refer to a 
 pipe or FIFO and @code{path} must refer to a FIFO.  The corresponding macro 
-is _POSIX_PIPE_BUF.
-
-@item _PC_CHOWN_RESTRICTED
-returns nonzero if the chown(2) call may not be used on this file.  If 
-@code{filedes} or @code{path} refer to a directory, then this applies to all 
-files in that directory.  The corresponding macro is _POSIX_CHOWN_RESTRICTED.
-
-@end table
-
-@subheading NOTES:
-
-Files with name lengths longer than the value returned for @code{name} equal 
-_PC_NAME_MAX may exist in the given directory.
-
-@page
-@subsection fpathconf - Gets configuration values for files
-
-@subheading CALLING SEQUENCE:
-
-@ifset is-C
-@example
-#include <unistd.h>
-
-int fpathconf(
-  int filedes, 
-  int name
-);
-@end example
-@end ifset
-
-@ifset is-Ada
-@end ifset
-
-@subheading STATUS CODES:
-
-@table @b
-@item EINVAL
-Invalid argument
-
-@item EACCES
-Permission to write the file is denied
-@item ENAMETOOLONG
-
-Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC
-is in effect.
-
-@item ENOENT
-A file or directory does not exist
-
-@item ENOTDIR
-A component of the specified @code{path} was not a directory whan a 
-directory was expected.
-
-@end table
-
-
-@subheading DESCRIPTION:
-
-@code{pathconf()} gets a value for the configuration option @code{name}
-for the open file descriptor @code{filedes}.
-
-The possible values for name are:
-
-@table @b
-@item _PC_LINK_MAX
-returns the maximum number of links to the file.  If @code{filedes} or 
-@code{path} refer to a directory, then the value applies to the whole
-directory.  The corresponding macro is _POSIX_LINK_MAX.
-
-@item _PC_MAX_CANON
-returns  the maximum length of a formatted input line, where @code{filedes}
-or @code{path} must refer to a terminal.  The corresponding macro is 
-_POSIX_MAX_CANON.
-
-@item _PC_MAX_INPUT
-returns the maximum length of an input line, where @code{filedes} or 
-@code{path} must refer to a terminal.  The corresponding macro is 
-_POSIX_MAX_INPUT.
-
-@item _PC_NAME_MAX
-returns the maximum length of a filename in the directory @code{path} or 
-@code{filedes}.  The process is allowed to create. The corresponding macro 
-is _POSIX_NAME_MAX.
-
-@item _PC_PATH_MAX
-returns the maximum length of a relative pathname when @code{path} or 
-@code{filedes} is the current working directory.  The corresponding macro 
-is _POSIX_PATH_MAX.
-
-@item _PC_PIPE_BUF
-returns the size of the pipe buffer, where @code{filedes} must refer to a 
-pipe or FIFO and @code{path} must refer to a FIFO.  The corresponding macro 
-is _POSIX_PIPE_BUF.
+is @code{_POSIX_PIPE_BUF}.
 
 @item _PC_CHOWN_RESTRICTED
 returns nonzero if the @code{chown()} call may not be used on this file.  If 
 @code{filedes} or @code{path} refer to a directory, then this applies to all 
-files in that directory.  The corresponding macro is _POSIX_CHOWN_RESTRICTED.
-
-@end table
-
-@subheading NOTES:
-
-NONE
+files in that directory.  The corresponding macro is
+@code{_POSIX_CHOWN_RESTRICTED}.
+
+@end table
+
+@subheading NOTES:
+
+NONE
+
+@page
+@subsection mknod - create a directory
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+long mknod(
+  const char *pathname,
+  mode_t      mode,
+  dev_t       dev
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@code{mknod} returns zero on success, or -1 if an error occurred (in which case, 
+errno is set appropriately).
+
+@table @b
+@item ENAMETOOLONG
+@code{pathname} was too long.
+
+@item ENOENT
+A directory component in @code{pathname} does not exist or is a dangling symbolic
+link.
+
+@item ENOTDIR
+A component used in the directory @code{pathname} is not, in fact, a directory.
+
+@item ENOMEM
+Insufficient kernel memory was available
+
+@item EROFS
+@code{pathname} refers to a file on a read-only filesystem.
+
+@item ELOOP
+@code{pathname} contains a reference to a circular symbolic link, ie a symbolic
+link whose expansion contains a reference to itself.
+
+@item ENOSPC
+The device containing @code{pathname} has no room for the new node.
+
+@end table
+
+@subheading DESCRIPTION:
+
+@code{mknod} attempts to create a filesystem node (file, device special file or
+named pipe) named @code{pathname}, specified by @code{mode} and @code{dev}.
+
+@code{mode} specifies both the permissions to use and the type of node to be created.
+
+It should be a combination (using bitwise OR) of one of the file types listed
+below and the permissions for the new node.
+
+The permissions are modified by the process's @code{umask} in the usual way: the 
+permissions of the created node are @code{(mode & ~umask)}.
+
+The file type should be one of @code{S_IFREG}, @code{S_IFCHR}, @code{S_IFBLK} and 
+@code{S_IFIFO} to specify a normal file (which will be created empty), character 
+special file, block special file or FIFO (named pipe), respectively, or zero, which 
+will create a normal file.
+
+If the file type is @code{S_IFCHR} or @code{S_IFBLK} then @code{dev} specifies the major  
+and minor numbers of the newly created device special file; otherwise it is ignored.
+
+The newly created node will be owned by the effective uid of the process.  If the
+directory containing the node has the set group id bit set, or if the filesystem
+is mounted with BSD group semantics, the new node will inherit the group ownership
+from its parent directory; otherwise it will be owned by the effective gid of the 
+process.
+
+
+@subheading NOTES:
+
+NONE
