Format
#include <sys\stat.h> #include <sys\types.h> int fstat(int handle, struct stat *buffer);
Language Level: XPG4, Extension
fstat obtains information about the open file associated with the
given handle and stores it in the structure to which buffer
points. The <sys\stat.h> include file defines the stat
structure. The stat structure contains the following fields:
| Field | Value |
| st_mode | Bit mask for file mode information. fstat sets the
S_IFCHR bit if handle refers to a device. The
S_IFDIR bit is set if pathname specifies a
directory. It sets the S_IFREG bit if handle
refers to an ordinary file. It sets user read/write bits
according to the permission mode of the file. The other
bits have undefined values.
|
| st_dev | Drive number of the disk containing the file. |
| st_rdev | Drive number of the disk containing the file (same as st_dev). |
| st_nlink | Always 1. |
| st_size | Size of the file in bytes. |
| st_atime | Time of last access of file. |
| st_mtime | Time of last modification of file. |
| st_ctime | Time of file creation. |
There are three additional fields in the stat structure for portability to other operating systems; they have no meaning under the OS/2 or Windows operating systems.
Note:
Return Value
If it obtains the file status information, fstat returns
0. A return value of -1 indicates an error, and fstat sets errno
to EBADF, showing an incorrect file handle.
Example
This example uses fstat to report the size of a file
named data.
#include <time.h> #include <sys\types.h> #include <sys\stat.h> #include <stdio.h>
int main(void)
{
struct stat buf;
FILE *fp;
int fh,result;
char *buffer = "A line to output";
fp = fopen("data", "w+");
fprintf(fp, "%s", buffer);
fflush(fp);
fclose(fp);
fp = fopen("data", "r");
if (0 == fstat(fileno(fp), &buf)) {
printf("file size is %ld\n", buf.st_size);
printf("time modified is %s\n", ctime(&buf.st_atime));
}
else
printf("Bad file handle\n");
fclose(fp);
return 0;
/*********************************************************
The output should be similar to:
file size is 16
time modified is Thu May 16 16:08:14 1995
*********************************************************/
}
![]()
stat -- Get Information about File or
Directory
<sys\stat.h>
<sys\types.h>