Программирование в стандарте POSIX


Получение информации о файлах и файловых системах - часть 6


ls -tl /

может выдать следующую информацию (см. пример 4.13):

total 338 drwxrwxrwt 23 root root 8192 Sep 2 16:26 tmp dr-xr-xr-x 143 root root 0 Sep 2 14:42 proc drwxr-xr-x 60 root root 4096 Sep 2 10:42 etc drwxr-xr-x 18 root root 86016 Sep 2 10:42 dev drwxr-x--- 5 root root 4096 Sep 1 17:10 root drwxr-xr-x 8 root root 4096 Aug 8 13:16 lib drwxr-xr-x 7 root root 4096 Jul 23 13:09 opt drwxr-xr-x 20 root root 4096 Jul 15 18:00 home drwxr-xr-x 14 root root 4096 Jul 15 12:50 usr drwxr-xr-x 2 root root 4096 Jul 11 17:38 sbin drwxr-xr-x 16 root root 4096 Jul 9 16:22 var drwxr-xr-x 2 root root 4096 Jul 8 13:32 bin drwxr-xr-x 4 root root 1024 Jul 6 15:06 boot drwx------ 2 root root 16384 Jul 6 14:15 lost+found drwxrwxr-x 2 root root 4096 Jul 6 13:31 cdrom drwxrwxr-x 2 root root 4096 Jul 6 13:31 a drwxr-xr-x 5 root root 4096 Jul 6 11:24 mnt drwxr-xr-x 6 root root 4096 Feb 23 2003 dss drwxr-xr-x 2 root root 4096 Apr 1 2002 misc drwxr-xr-x 2 root root 4096 Jun 12 2001 initrd

Листинг 4.13. Возможный результат использования служебной программы ls с сортировкой файлов по времени последнего изменения.

Видеть в первую очередь самые свежие файлы полезно в тех случаях, когда программная система перестала работать и нужно найти причину поломки, а для этого требуется прежде всего точно узнать, что же, собственно, изменилось.

При программировании на языке C информацию о файлах получают с помощью функций семейства stat() (см. пример 4.14).

#include <sys/stat.h> int stat (const char *restrict path, struct stat *restrict buf); #include <sys/stat.h> int fstat (int fildes, struct stat *buf); #include <sys/stat.h> int lstat (const char *restrict path, struct stat *restrict buf);

Листинг 4.14. Описание функций семейства stat().

Обратим внимание на использование в описании функций stat() и lstat() ключевого слова restrict из репертуара C99. Оно означает, что по указателям-аргументам доступ осуществляется к непересекающимся областям памяти. Подобная спецификация расширяет оптимизационные возможности компилятора.




Начало  Назад  Вперед



Книжный магазин