Язык программирования C

Скачать в pdf «Язык программирования C»

размер файла в символах */


time_t


St.


_atime;


/*


время последнего обращения */


time_t


St.


_mtime;


/*


время последней модификации */


time t


St.


ctime;


/*


время последней модификации индекса *

Большинство значений разъяснены в комментариях. Типы dev_t и ino_t определены в файле <sys/types . h>, который также следует подключить.


Поле st_mode содержит набор флаговых битов, описывающих свойства файла. Определения флагов также даны в файле <sys/stat.h>; нам понадобится только та часть, которая имеет отношение к типам файлов:


#define #define #define #define #define


S


IFMT


0160000


/*


тип файла: */


S


IFDIR


0040000


/*


каталог */


S


IFCHR


0020000


/*


символьный специальный


S


‘iFBLK


0060000


/*


блочный специальный */


S


IFREG


0100000


/*


обычный */

/* ••• */


Теперь мы готовы к написанию программы fsize. Если режим, полученный от stat, соответствует файлу, а не каталогу, то размер сразу же оказывается под рукой, и его можно непосредственно вывести. Однако если файл является каталогом, тогда необходимо дополнительно прочитать из него список файлов по одному за раз. К тому же каталог может содержать подкаталоги, так что обработка будет носить рекурсивный характер.


Главный модуль программы обрабатывает аргументы командной строки; он передает каждый аргумент по очереди в функцию fsize.


#include


#include


#include


#include


#include


#include


#include



<stdio.h> <string.h> «syscalls.h» <fcntl.h> <sys/types.h> <sys/stat.h> «dirent.h»

Скачать в pdf «Язык программирования C»