STAT.2
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:5k
源码类别:

操作系统开发

开发平台:

C/C++

  1. STAT(2)                   Minix Programmer's Manual                    STAT(2)
  2. NAME
  3.      stat, lstat, fstat - get file status
  4. SYNOPSIS
  5.      #include <sys/types.h>
  6.      #include <sys/stat.h>
  7.      int stat(const char *path, struct stat *buf)
  8.      int lstat(const char *path, struct stat *buf)         (Minix-vmd)
  9.      int fstat(int fd, struct stat *buf)
  10. DESCRIPTION
  11.      Stat obtains information about the file path.   Read,  write  or  execute
  12.      permission  of the named file is not required, but all directories listed
  13.      in the path name leading to the file must be reachable.
  14.      Lstat is like stat except in the case where the named file is a  symbolic
  15.      link,  in which case lstat returns information about the link, while stat
  16.      returns information about the file the link references.  (Minix-vmd)
  17.      Fstat obtains the same information about an open file referenced  by  the
  18.      argument  descriptor,  such  as  would be obtained by an open call.  Pipe
  19.      descriptors look like named pipes with a link count of zero.  The st_size
  20.      field  of  pipes  or  named  pipes  shows  the  amount of bytes currently
  21.      buffered in the pipe.
  22.      Buf is a pointer to a stat structure into  which  information  is  placed
  23.      concerning  the file.  The contents of the structure pointed to by buf is
  24.      as follows:
  25.      struct stat {
  26.          dev_t     st_dev;     /* device inode resides on */
  27.          ino_t     st_ino;     /* this inode's number */
  28.          mode_t    st_mode;    /* file mode, protection bits, etc. */
  29.          nlink_t   st_nlink;   /* number or hard links to the file */
  30.          uid_t     st_uid;     /* user-id of the file's owner */
  31.          gid_t     st_gid;     /* group-id of the file's owner */
  32.          dev_t     st_rdev;    /* the device type, for inode that is device */
  33.          off_t     st_size;    /* total size of file */
  34.          time_t    st_atime;   /* time of last access */
  35.          time_t    st_mtime;   /* time of last data modification */
  36.          time_t    st_ctime;   /* time of last file status change */
  37.      };
  38.      st_atime    Time when file data was last read or  modified.   Changed  by
  39.                  the following system calls:  mknod(2), utime(2), read(2), and
  40.                  write(2).  For reasons of efficiency,  st_atime  is  not  set
  41.                  when  a  directory  is  searched, although this would be more
  42.                  logical.
  43. 4BSD                              May 12, 1986                               1
  44. STAT(2)                   Minix Programmer's Manual                    STAT(2)
  45.      st_mtime    Time when data was last modified.  It is not set  by  changes
  46.                  of  owner,  group,  link  count,  or  mode.   Changed  by the
  47.                  following system calls:  mknod(2), utime(2), write(2).
  48.      st_ctime    Time when file status was last changed.  It is set both  both
  49.                  by writing and changing the i-node.  Changed by the following
  50.                  system  calls:    chmod(2)   chown(2),   link(2),   mknod(2),
  51.                  rename(2), unlink(2), utime(2), write(2).
  52.      The file type information in st_mode has bits:
  53.           #define S_IFMT     0170000    /* type of file */
  54.           #define    S_IFIFO 0010000    /* named pipe */
  55.           #define    S_IFCHR 0020000    /* character special */
  56.           #define    S_IFDIR 0040000    /* directory */
  57.           #define    S_IFBLK 0060000    /* block special */
  58.           #define    S_IFREG 0100000    /* regular */
  59.           #define    S_IFLNK 0120000    /* symbolic link (Minix-vmd) */
  60.      The mode bits 0007777 encode set-uid/gid bits and  permission  bits  (see
  61.      chmod(2)).
  62. RETURN VALUE
  63.      Upon successful completion a value of 0 is returned.  Otherwise, a  value
  64.      of -1 is returned and errno is set to indicate the error.
  65. ERRORS
  66.      Stat and lstat will fail if one or more of the following are true:
  67.      [ENOTDIR]      A component of the path prefix is not a directory.
  68.      [ENAMETOOLONG] The path name exceeds PATH_MAX characters.
  69.      [ENOENT]       The named file does not exist.
  70.      [EACCES]       Search permission is denied for a component  of  the  path
  71.                     prefix.
  72.      [ELOOP]        Too many symbolic links were  encountered  in  translating
  73.                     the pathname.  (Minix-vmd)
  74.      [EFAULT]       Buf or name points to an invalid address.
  75.      [EIO]          An I/O error occurred while reading from or writing to the
  76.                     file system.
  77.      Fstat will fail if one or both of the following are true:
  78. 4BSD                              May 12, 1986                               2
  79. STAT(2)                   Minix Programmer's Manual                    STAT(2)
  80.      [EBADF]        Fildes is not a valid open file descriptor.
  81.      [EFAULT]       Buf points to an invalid address.
  82.      [EIO]          An I/O error occurred while reading from or writing to the
  83.                     file system.
  84. SEE ALSO
  85.      chmod(2), chown(2), utime(2).
  86. 4BSD                              May 12, 1986                               3