Originální popis anglicky:
fstat - get file status
Návod, kniha: POSIX Programmer's Manual
#include <sys/stat.h>
int fstat(int
fildes, struct stat
*buf );
The
fstat() function shall obtain information about an open file
associated with the file descriptor
fildes, and shall write it to the
area pointed to by
buf.
If
fildes references a shared memory object, the implementation shall
update in the
stat structure pointed to by the
buf argument only
the
st_uid,
st_gid,
st_size, and
st_mode fields,
and only the S_IRUSR, S_IWUSR, S_IRGRP, S_IWGRP, S_IROTH, and S_IWOTH file
permission bits need be valid. The implementation may update other fields and
flags.
If
fildes references a typed memory object, the implementation shall
update in the
stat structure pointed to by the
buf argument only
the
st_uid,
st_gid,
st_size, and
st_mode fields,
and only the S_IRUSR, S_IWUSR, S_IRGRP, S_IWGRP, S_IROTH, and S_IWOTH file
permission bits need be valid. The implementation may update other fields and
flags.
The
buf argument is a pointer to a
stat structure, as defined in
<sys/stat.h>, into which information is placed concerning the
file.
The structure members
st_mode,
st_ino,
st_dev,
st_uid,
st_gid,
st_atime,
st_ctime, and
st_mtime shall have meaningful values for all other file types defined
in this volume of IEEE Std 1003.1-2001. The value of the member
st_nlink shall be set to the number of links to the file.
An implementation that provides additional or alternative file access control
mechanisms may, under implementation-defined conditions, cause
fstat()
to fail.
The
fstat() function shall update any time-related fields as described in
the Base Definitions volume of IEEE Std 1003.1-2001, Section
4.7, File Times Update, before writing into the
stat structure.
Upon successful completion, 0 shall be returned. Otherwise, -1 shall be returned
and
errno set to indicate the error.
The
fstat() function shall fail if:
- EBADF
- The fildes argument is not a valid file
descriptor.
- EIO
- An I/O error occurred while reading from the file
system.
- EOVERFLOW
- The file size in bytes or the number of blocks allocated to
the file or the file serial number cannot be represented correctly in the
structure pointed to by buf.
The
fstat() function may fail if:
- EOVERFLOW
- One of the values is too large to store into the structure
pointed to by the buf argument.
The following sections are informative.
The following example shows how to obtain file status information for a file
named
/home/cnd/mod1. The structure variable
buffer is defined
for the
stat structure. The
/home/cnd/mod1 file is opened with
read/write privileges and is passed to the open file descriptor
fildes.
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
struct stat buffer;
int status;
...
fildes = open("/home/cnd/mod1", O_RDWR);
status = fstat(fildes, &buffer);
None.
None.
None.
lstat() ,
stat() , the Base Definitions volume of
IEEE Std 1003.1-2001,
<sys/stat.h>,
<sys/types.h>
Portions of this text are reprinted and reproduced in electronic form from IEEE
Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
Operating System Interface (POSIX), The Open Group Base Specifications Issue
6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. In the event of any discrepancy between
this version and the original IEEE and The Open Group Standard, the original
IEEE and The Open Group Standard is the referee document. The original
Standard can be obtained online at http://www.opengroup.org/unix/online.html
.