obtain information about an open file
#include <sys/types.h> #include <sys/stat.h> int fstat( int filedes, struct stat *buf );
The fstat() function obtains information about an open file whose file descriptor is filedes. This information is placed in the structure located at the address indicated by buf.
The file <sys/stat.h> contains definitions for the structure stat and at least the following macros:
The value m supplied to the macros is the value of the st_mode field of a stat structure. The macro evaluates to a nonzero value if the test is true, and zero if the test is false.
The access permissions for the file or directory are specified as a combination of bits in the st_mode field of a stat structure. These bits are defined in the <sys/stat.h> header file, and are described in the section on this file in the Header Files chapter. The following bits are also encoded in the st_mode field:
#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> void main() { int filedes, rc; struct stat buf; filedes = open( "file", O_RDONLY ); if( filedes != -1 ) { rc = fstat( filedes , &buf ); if( rc != -1 ) printf( "File size = %d\n", buf.st_size ); close( filedes ); } }
POSIX 1003.1
Safety: | |
---|---|
Interrupt handler | No |
Signal handler | Yes, but modifies errno |
Thread | Yes |
creat(), dup(), dup2(), errno, fcntl(), fsys_stat(), fsys_fstat(), lstat(), open(), sopen(), stat(), pipe()