dir man page on Ultrix

Man page or keyword search:  
man Server   3690 pages
apropos Keyword Search (all sections)
Output format
Ultrix logo
[printable version]

dir(5)									dir(5)

       dir - format of directories

       #include <sys/types.h>
       #include <sys/dir.h>

       A  directory behaves exactly like an ordinary file, except that no user
       may write into a directory.  The fact that a file  is  a	 directory  is
       indicated  by  a bit in the flag word of its i-node entry.  For further
       information, see The structure of a directory entry  is	given  in  the
       include file.

       A directory consists of some number of blocks of DIRBLKSIZ bytes, where
       DIRBLKSIZ is chosen such that it can be transferred to disk in a single
       atomic operation (for example, 512 bytes on most machines).

       Each  DIRBLKSIZ	byte  block  contains  some  number of directory entry
       structures, which are of variable length.  Each directory entry	has  a
       struct  direct  at  the	front  of it, containing its inode number, the
       length of the entry, and the length of the name contained in the entry.
       These  are  followed  by the name padded to a 4-byte boundary with null
       bytes.  All names are guaranteed null terminated.  The  maximum	length
       of a name in a directory is MAXNAMLEN.

       The  macro DIRSIZ(dp) gives the amount of space required to represent a
       directory entry.	 Free space in a directory is represented  by  entries
       which  have dp->d_reclen > DIRSIZ(dp).  All DIRBLKSIZ bytes in a direc‐
       tory block are claimed by the directory entries.	 This  action  usually
       results in the last entry in a directory having a large
       dp->d_reclen.   When entries are deleted from a directory, the space is
       returned to the previous entry in the same directory block by  increas‐
       ing  its	 dp->d_reclen.	If the first entry of directory block is free,
       then its dp->d_ino is set to 0.	Entries other  than  the  first	 in  a
       directory do not normally have dp->d_ino set to 0.
       #ifdef KERNEL
       #define DIRBLKSIZ DEV_BSIZE
       #define	 DIRBLKSIZ 512

       #define MAXNAMLEN 255

       The  DIRSIZ  macro  gives  the minimum record length that will hold the
       directory entry.	 This requires the amount of space  in	struct	direct
       without	the d_name field, plus enough space for the name with a termi‐
       nating null byte (dp->d_namlen+1), rounded up to a 4-byte boundary.
       #undef DIRSIZ
       #define DIRSIZ(dp) \
	   ((sizeof (struct direct) - (MAXNAMLEN+1)) + \
	   (((dp)->d_namlen+1 + 3) &~ 3))

       struct	 direct {
	    u_long    d_ino;
	    short     d_reclen;
	    short     d_namlen;
	    char d_name[MAXNAMLEN + 1];
	    /* typically shorter */

       struct _dirdesc {
	    int	 dd_fd;
	    long dd_loc;
	    long dd_size;
	    char dd_buf[DIRBLKSIZ];

       By convention, the first two entries in each directory are for dot  (.)
       and dot dot (..).  The first is an entry for the directory itself.  The
       second is for the parent directory.  The meaning of  `..'  is  modified
       for  the	 root directory of the master file system (“/”), where dot dot
       has the same meaning as dot.

See Also


List of man pages available for Ultrix

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net