Format
#include <sys\types.h> #include <sys\stat.h> int stat(const char *pathname, struct stat *buffer);
Language Level: XPG4, Extension
stat stores information about the file or directory specified by pathname
in the structure to which buffer points. The stat
structure, defined in <sys\stat.h>, contains the following
fields:
| Field | Value |
| st_mode | Bit mask for file-mode information. The S_IFDIR bit
is set if pathname specifies a directory. The
S_IFREG bit is set if pathname specifies an
ordinary file. User read/write bits are set according to
the permission mode of the file. The S_IEXEC bit is set
using the file name extension. The other bits are
undefined.
|
| 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. |
Note: If the given pathname specifies only a device (for example C:\), time information is not available.
Note: In earlier releases of the C/C++ run-time library, stat began with an underscore (_stat). Because it is defined by the X/Open standard, the underscore has been removed. For compatibility, IBM C and C++ Compilers will map _stat to stat for you.
Return Value
stat returns the value 0 if the file status information
is obtained. A return value of -1 indicates an error, and errno
is set to ENOENT, indicating that the file name or path name
could not be found.
Example
This example requests that the status information for
the file test.exe be placed into the structure buf. If
the request is successful and the file is executable, the example
runs test.exe.
#include <sys\types.h> #include <sys\stat.h> #include <process.h> #include <stdio.h>
int main(void)
{
struct stat buf;
if (0 == stat("test.exe", &buf)) {
if ((buf.st_mode&S_IFREG) && (buf.st_mode&S_IEXEC))
execl("test.exe", "test", NULL); /* file is executable */
}
else
printf("File could not be found\n");
return 0;
/**********************************************************************
The source for test.exe is:
#include <stdio.h>
int main(void)
{
puts("test.exe is an executable file");
}
The output should be:
test.exe is an executable file **********************************************************************/ }
![]()
fstat -- Information about Open File
<sys\stat.h>
<sys\types.h>