lstat man page on NeXTSTEP

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


STAT(2)								       STAT(2)

NAME
       stat, lstat, fstat - (BSD version) get file status

SYNOPSIS
       #include <sys/types.h>
       #include <sys/stat.h>

       stat(path, buf)
       char *path;
       struct stat *buf;

       lstat(path, buf)
       char *path;
       struct stat *buf;

       fstat(fd, buf)
       int fd;
       struct stat *buf;

DESCRIPTION
       This  is	 the BSD specification for stat.  For the POSIX specification,
       see stat(2P).

       Stat obtains information about the file path.  Read, write  or  execute
       permission  of  the  named  file	 is  not required, but all directories
       listed in the path name leading to the file must be reachable.

       Lstat is like stat except in  the  case	where  the  named  file	 is  a
       symbolic	 link, in which case lstat returns information about the link,
       while stat returns information about the file the link references.

       Fstat obtains the same information about an open file referenced by the
       argument descriptor, such as would be obtained by an open call.

       Buf  is	a pointer to a stat structure into which information is placed
       concerning the file.  The contents of the structure pointed to by buf

	    struct stat {
		 dev_t	st_dev; /* device inode resides on */
		 ino_t	st_ino; /* this inode's number */
		 u_short	st_mode;/* protection */
		 short	st_nlink;/* number of hard links to the file */
		 uid_t	st_uid; /* user-id of owner */
		 gid_t	st_gid; /* group-id of owner */
		 dev_t	st_rdev;/* the device type, for inode that is device */
		 off_t	st_size;/* total size of file */
		 time_t st_atime;/* file last access time */
		 int	st_spare1;
		 time_t st_mtime;/* file last modify time */
		 int	st_spare2;
		 time_t st_ctime;/* file last status change time */
		 int	st_spare3;
		 long	st_blksize;/* optimal blocksize for file system i/o ops */
		 long	st_blocks;/* actual number of blocks allocated */
		 long	st_spare4[2];
	   };

       st_atime	   Time when file data was last read or modified.  Changed  by
		   the	following  system calls: mknod(2), utimes(2), read(2),
		   and write(2).  For reasons of efficiency, st_atime  is  not
		   set	when  a	 directory is searched, although this would be
		   more logical.

       st_mtime	   Time when data was last modified.  It is not set by changes
		   of  owner,  group,  link  count,  or	 mode.	Changed by the
		   following system calls: mknod(2), utimes(2), write(2).

       st_ctime	   Time when file status was last changed.   It	 is  set  both
		   both	 by  writing  and changing the i-node.	Changed by the
		   following  system  calls:   chmod(2)	  chown(2),   link(2),
		   mknod(2), rename(2), unlink(2), utimes(2), write(2).

       The status information word st_mode has bits:
	    #define S_IFMT  0170000  /* type of file */
	    #define    S_IFDIR	     0040000/* directory */
	    #define    S_IFCHR	     0020000/* character special */
	    #define    S_IFBLK	     0060000/* block special */
	    #define    S_IFREG	     0100000/* regular */
	    #define    S_IFLNK	     0120000/* symbolic link */
	    #define    S_IFSOCK	     0140000/* socket */
	    #define S_ISUID 0004000  /* set user id on execution */
	    #define S_ISGID 0002000  /* set group id on execution */
	    #define S_ISVTX 0001000  /* save swapped text even after use */
	    #define S_IREAD 0000400  /* read permission, owner */
	    #define S_IWRITE	     0000200/* write permission, owner */
	    #define S_IEXEC 0000100  /* execute/search permission, owner */

       The  mode  bits 0000070 and 0000007 encode group and others permissions
       (see chmod(2)).

RETURN VALUE
       Upon successful completion a value of  0	 is  returned.	 Otherwise,  a
       value of -1 is returned and errno is set to indicate the error.

ERRORS
       Stat and lstat will fail if one or more of the following are true:

       [ENOTDIR]      A component of the path prefix is not a directory.

       [EINVAL]	      The  pathname  contains  a character with the high-order
		      bit set.

       [ENAMETOOLONG] A component of a pathname exceeded 255 characters, or an
		      entire path name exceeded 1023 characters.

       [ENOENT]	      The named file does not exist.

       [EACCES]	      Search  permission is denied for a component of the path
		      prefix.

       [ELOOP]	      Too many symbolic links were encountered in  translating
		      the pathname.

       [EFAULT]	      Buf or name points to an invalid address.

       [EIO]	      An  I/O  error occurred while reading from or writing to
		      the file system.

       Fstat will fail if one or both of the following are true:

       [EBADF]	      Fildes is not a valid open file descriptor.

       [EFAULT]	      Buf points to an invalid address.

       [EIO]	      An I/O error occurred while reading from or  writing  to
		      the file system.

CAVEAT
       The fields in the stat structure currently marked st_spare1, st_spare2,
       and  st_spare3  are  present  in	 preparation  for  inode  time	stamps
       expanding  to  64 bits.	This, however, can break certain programs that
       depend on the time stamps being contiguous (in calls to utimes(2)).

SEE ALSO
       chmod(2), chown(2), utimes(2), stat(2)

BUGS
       Applying fstat to a socket (and	thus  to  a  pipe)  returns  a	zeroed
       buffer,	except	for the blocksize field, and a unique device and inode
       number.

4th Berkeley Distribution	 May 12, 1986			       STAT(2)
[top]

List of man pages available for NeXTSTEP

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]
Tweet
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