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


Пример 4.15


/* Программа выдает информацию о файлах - аргументах командной строки */

#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;

}




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



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