HPUX fstat[2]

fstat in anderen Kapiteln des hpux Handbuch:
fstat.3f
stat(2) stat(2)
NAME
stat, lstat, fstat - get file status
SYNOPSIS
#include <sys/stat.h>
int stat(const char *path, struct stat *buf);
int lstat(const char *path, struct stat *buf);
int fstat(int fildes, struct stat *buf);
DESCRIPTION
stat() obtains information about the named file.
path points to a path name naming a file. 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 searchable.
Similarly, fstat() obtains information about an open file known by the
file descriptor fildes, obtained from a successful open(), creat(),
dup(), fcntl(), or pipe() system call (see open(2), creat(2), dup(2),
fcntl(2), or pipe(2)).
lstat() is similar to stat() except when the named file is a symbolic
link, in which case lstat() returns the information about the link,
while stat() returns information about the file to which the link
points.
buf is a pointer to a stat() structure into which information is
placed concerning the file.
The contents of structure stat() pointed to by buf include the
following members. Note that there is no necessary correlation
between the placement in this list and the order in the structure.
dev_t st_dev; /* ID of device containing a */
/* directory entry for this file */
ino_t st_ino; /* Inode number */
ushort st_fstype; /* Type of filesystem this file */
/* is in; see vfsmount(2) */
ushort st_mode; /* File type, attributes, and */
/* access control summary */
ushort st_basemode /* Permission bits (see chmod(1)) */
ushort st_nlink; /* Number of links */
uid_t st_uid; /* User ID of file owner */
gid_t st_gid; /* Group ID of file group */
dev_t st_rdev; /* Device ID; this entry defined */
/* only for char or blk spec files */
off_t st_size; /* File size (bytes) */
time_t st_atime; /* Time of last access */
Hewlett-Packard Company - 1 - HP-UX Release 9.0: August 1992
stat(2) stat(2)
time_t st_mtime; /* Last modification time */
time_t st_ctime; /* Last file status change time */
/* Measured in secs since */
/* 00:00:00 GMT, Jan 1, 1970 */
uint st_acl:1; /* Set if the file has optional */
/* access control list entries */
Field contents are as follows:
st_atime Time when file data was last accessed. Changed by
the following system calls: creat(), mknod(), pipe(),
read(), readv() (see read(2)), and utime(). If a
file is mapped into virtual memory, accesses of file
data through the mapping may also modify st_mtime.
See mmap(2).
st_mtime Time when data was last modified. Changed by the
following system calls: creat(), truncate(),
ftruncate(), (see truncate(2)), mknod(), pipe(),
prealloc(), utime(), write(), and writev() (see
write(2)). Also changed by close() when the
reference count reaches zero on a named pipe (FIFO
special) file that contains data. If a file is
mapped into virtual memory, updates of file data
through the mapping may also modify st_mtime. See
mmap(2).
st_ctime Time when file status was last changed. Changed by
the following system calls: chmod(), chown(),
creat(), fchmod(), fchown(), truncate(), ftruncate(),
(see truncate(2)), link(), mknod(), pipe(),
prealloc(), rename(), setacl(), unlink(), utime(),
write(), and writev() (see write(2)).
The touch command (see touch(1) can be used to
explicitly control the times of a file.
st_mode The value returned in this field is the bit-wise
inclusive OR of a value indicating the file's type,
attribute bits, and a value summarizing its access
permission. See mknod(2).
For ordinary users, the least significant nine bits
consist of the file's permission bits modified to
reflect the access granted or denied to the caller by
optional entries in the file's access control list.
For users with appropriate privileges
the least significant nine bits are the file's
access permission bits. In addition, the S_IXUSR
(execute by owner) mode bit is set if the following
Hewlett-Packard Company - 2 - HP-UX Release 9.0: August 1992
stat(2) stat(2)
conditions are met:
o The file is a regular file,
o No permission execute bits are set, and
o An execute bit is set in one or more of the
file's optional access control list entries.
The write bit is not cleared for a file on a read-
only file system or a shared-text program file that
is being executed. However, getaccess() clears this
bit under these conditions (see getaccess(2).
RETURN VALUE
Upon successful completion, 0 is returned. Otherwise, -1 is returned
and errno is set to indicate the error.
ERRORS
stat() and lstat() fail if any of the following conditions are
encountered:
[ENOTDIR] A component of the path prefix is not a
directory.
[ENOENT] The named file does not exist (for example,
path is null or a component of path does not
exist).
[EACCES] Search permission is denied for a component
of the path prefix.
[EFAULT] buf or path points to an invalid address.
The reliable detection of this error is
implementation dependent.
[ELOOP] Too many symbolic links were encountered in
translating the path name.
[ENAMETOOLONG] The length of the specified path name exceeds
PATH_MAX bytes, or the length of a component
of the path name exceeds NAME_MAX bytes while
_POSIX_NO_TRUNC is in effect.
fstat() fails if any of the following conditions are encountered:
[EBADF] fildes is not a valid open file descriptor.
[EFAULT] buf points to an invalid address. The
reliable detection of this error is
implementation dependent.
Hewlett-Packard Company - 3 - HP-UX Release 9.0: August 1992
stat(2) stat(2)
DEPENDENCIES
HP Clustered Environment
The contents of the stat() structure include the following additional
members:
cnode_t st_cnode; /* cnode ID of machine */
/* where the inode lives */
cnode_t st_rcnode /* cnode ID where this */
/* device file can be used */
dev_t st_realdev; /* Real device number of device */
/* containing the inode for this file */
st_dev The ID number for the volume on which the inode
exists. This number may or may not be the device
number for the device containing the volume. Device
numbers are not unique throughout a cluster, but the
value of st_dev is guaranteed to be unique among all
volumes currently mounted in the file system. The
device number for the volume can always be found in
the field st_realdev, which, together with st_cnode,
fully specifies the device containing the volume.
CD-ROM
The st_uid and st_gid fields are set to -1 if they are not specified
on the disk for a given file.
NFS
The st_basemode and st_acl fields are zero on files accessed remotely.
WARNINGS
Access Control Lists
Access control list descriptions in this entry apply only to standard
HP-UX operating systems. If HP-UX BLS software has been installed,
access control lists are handled differently. Refer to HP-UX BLS
documentation for information about access control lists in the HP-UX
BLS environment.
AUTHOR
stat() and fstat() were developed by AT&T. lstat() was developed by
the University of California, Berkeley.
SEE ALSO
touch(1), chmod(2), chown(2), creat(2), link(2), mknod(2), pipe(2),
read(2), rename(2), setacl(2), time(2), truncate(2), unlink(2),
utime(2), write(2), acl(5), stat(5), privilege(5).
STANDARDS CONFORMANCE
stat(): AES, SVID2, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1
fstat(): AES, SVID2, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1
Hewlett-Packard Company - 4 - HP-UX Release 9.0: August 1992
stat(2) stat(2)
lstat(): AES
Hewlett-Packard Company - 5 - HP-UX Release 9.0: August 1992