Упражнение 4.1
Измение функцию my_double_ls из предыдущего примера так, чтобы она имела второй параметр - целочисленную переменную skip. Если значение skip равно нулю, то функция my_double_ls должна выполняться так же, как и раньше. Если значение переменной skip равно 1, функция my_double_ls должна пропускать все имена файлов, которые начинаются с точки (.)
Упражнение 4.2
В предыдущей главе мы познакомились с использованием системных вызовов stat и fstat для получения информации о файле. Структура stat, возвращаемая вызовами stat и fstat, содержит поле st_mode, режим доступа к файлу. Режим доступа к файлу образуется при помощи выполнения побитовой операции "или" значения кода доступа с константами, определяющими, является ли этот файл обычным файлом, каталогом, специальным файлом или механизмом межпроцессного взаимодействия, таким как именованный канал. Наилучший способ проверить, является ли файл каталогом - использовать макрос S_ISDIR:
/* Переменная buf получена в результате вызова stat */ if(S_ISDIR(buf.st_mode)) printf("Это каталог\n"); else printf("Это не каталог\n");
Измените процедуру my_double_ls так,
чтобы она вызывала stat для каждого
найденного файла и выводила звездочку после каждого имени каталога.