2002-02-11     James A. Morrison  <[EMAIL PROTECTED]>

         * hurd.texi (Modifying Directories): Documented dir_mkfile, dir_mkdir
         dir_rmdir, dir_unlink, dir_link and dir_rename.

Index: hurd.texi
===================================================================
RCS file: /cvsroot/hurd/hurd/doc/hurd.texi,v
retrieving revision 1.20
diff -u -r1.20 hurd.texi
--- hurd.texi   12 Mar 2001 00:43:50 -0000      1.20
+++ hurd.texi   9 Feb 2002 22:34:29 -0000
@@ -2839,19 +3011,36 @@
 @node Modifying Directories
 @subsection Modifying Directories
 
-FIXME: Creating and deleting nodes
+@c FIXME: Creating and deleting nodes
+@c JM: I think I fixed this
 
-@code{dir_mkfile}
+Operations on directoriess can be done in the usual unix way using functions
+in glibc, or these simple operations for modifying directories can be done
+more directly with these functions using Hurd file_t descriptors of directories.
 
-@code{dir_mkdir}
+@deftypefun kern_return_t dir_mkfile (@w{file_t @var{directory}}, @w{int 
+@var{flags}}, @w{mode_t @var{mode}}, @w{mach_port_t *@var{newnode}})
+Create a new file without linking it into the filesystem.  You still must have write 
+permission on the specified directory, even though it will not actually be written.  
+Return in *@var{newnode} a port to the file.  Flags are the same as for 
+@code{dir_lookup}, but @code{O_CREAT} and @code{O_TRUNC} are assumed even if not 
+specified.
+@end deftypefun
+
+@deftypefun kern_return_t dir_mkdir (@w{file_t @var{directory}}, @w{char 
+*@var{name}}, @w{mode_t @var{mode}})
+Create a new directory named @var{name} with permission specified by @var{mode}.
+@end deftypefun
 
-@code{dir_rmdir}
+@deftypefun kern_return_t dir_rmdir (@w{file_t @var{directory}}, @w{char *@var{name}})
+Remove the directory named @var{name}.
+@end deftypefun
 
-@code{dir_unlink}
+@deftypefun kern_return_t dir_unlink (@w{file_t @var{directory}}, @w{char 
+*@var{name}})
+Remove/Unlink a non-directory.
+@end deftypefun
 
-@code{dir_link}
+@deftypefun kern_return_t dir_link (@w{file_t @var{directory}}, @w{file_t 
+@var{file}}, @w{char *@var{name}}, @w{int @var{excl}})
+Create a hard link.  If @var{excl} is set and @var{name} already exists in 
+@var{directory} then this function will fail.  If @var{excl} is not set and 
+@var{name} already exists the old file named @var{name} will be unlinked.  If 
+@var{directory} and @var{file} are not on the same filesystem then @code{dir_link} 
+will probably fail with @code{EXDEV}.
+@end deftypefun
 
-@code{dir_rename}
+@deftypefun kern_return_t dir_rename (@w{file_t @var{olddirectory}}, @w{char 
+*@var{oldname}}, @w{file_t @var{newdirectory}}, @w{char *@var{newname}}, @w{int 
+@var{excl}})
+Rename a file from @var{olddirectory}/@var{oldname} to 
+@var{newdirectory}/@var{newname}.   If @var{excl} is set and @var{newname} already 
+exists in @var{newdirectory} then this function will fail.  If @var{excl} is not set 
+and @var{newname} already exists the old file named @var{newname} will be unlinked.  
+If @var{olddirectory} and @var{newdirectory} are not on the same filesystem then 
+@code{dir_rename} will probably fail with @code{EXDEV}.
+@end deftypefun
 
 @node Notifications
 @subsection Notifications
 

_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to