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


         

Функция возвращает односимвольное обозначение типа


/* Программа выдает информацию о файлах - аргументах командной строки */
#include
#include
#include
/* Функция возвращает односимвольное обозначение типа файла */
/* Для неизвестного типа возвращается 'u' */
static char my_filetype (const mode_t mode) {
switch (mode &S_IFMT) {
case S_IFDIR:
return ('d');
case S_IFBLK:
return ('b');
case S_IFCHR:
return ('c');
case S_IFLNK:
return ('l');
case S_IFIFO:
return ('p');
case S_IFREG:
return ('-');
case S_IFSOCK:
return ('s');
default:
return ('u');
}
}
int main (int argc, char *argv[]) {
struct stat buf;
int i;
for (i = 1; i < argc; i++) {
if (stat (argv [i], &buf)) {
fprintf (stderr, "\nstat: не удалось получить информацию о файле %s\n", argv [i]);
return (-1);
}
printf ("\nstat-информация о файле %s:\n", argv [i]);
printf ("Тип: %c\n", my_filetype (buf.st_mode));
printf ("Размер: %ld\n", buf.st_size);

if (lstat (argv [i], &buf)) {
fprintf (stderr, "\nlstat: не удалось получить информацию о файле %s\n", argv [i]);
return (-1);
}
printf ("\nlstat-информация о файле %s:\n", argv [i]);
printf ("Тип: %c\n", my_filetype (buf.st_mode));
printf ("Размер: %ld\n", buf.st_size);
}
return 0;
}

Содержание  Назад  Вперед