Получить информацию о файле или директории по заданному пути
#include <sys/stat.h>int stat( const char *path,struct stat *buf );int stat64( const char *path,struct stat64 *buf );
libc
Функции stat() и stat64() получают информацию о файле или каталоге, указанном в параметре path. Эта информация размещается в структуре struct stat, расположенной по адресу, указанному в параметре buf.
PATH_MAX
или компонент имени пути длиннее NAME_MAX
. PATH_MAX
и NAME_MAX
определены в заголовочном файле <limits.h>
. Определение размера файла:
#include <stdio.h>#include <stdlib.h>#include <sys/stat.h>int main( void ){struct stat buf;if ( stat( "file", &buf ) != -1 ){printf( "File size = %d\n", buf.st_size );}return (EXIT_SUCCESS);}
Определение объема свободной памяти:
#include <stdio.h>#include <stdlib.h>#include <sys/stat.h>int main( void ){struct stat buf;if ( stat( "/proc", &buf ) == -1 ){perror( "stat" );return (EXIT_FAILURE);} else {printf( "Free memory: %d bytes\n", buf.st_size );return (EXIT_SUCCESS);}}
stat() — POSIX 1003.1; stat64() — Поддержка больших файлов
struct stat, time_t, errno, fstat(), fstat64(), lstat()
Предыдущий раздел: Описание API системной библиотеки