# Рекурсивный поиск слова в файлах директории ## Описание Программа `wordsearch` на языке C рекурсивно обходит заданную директорию и её вложенные каталоги (включая скрытые, начинающиеся с точки) и ищет указанное слово во всех текстовых файлах. При обнаружении выводятся полный путь к файлу, номер строки и сама строка с найденным словом. ## Требования - Директория поиска передаётся первым аргументом командной строки (по умолчанию `~`). - Слово для поиска передаётся вторым аргументом командной строки. - Поддерживается флаг `-i` для игнорирования регистра. - Обрабатываются скрытые файлы и директории. - Корректная обработка ошибок (отсутствие директории, ошибки доступа). ## Сборка ```bash make ``` ## Запуск ```bash # По умолчанию ищет в ~: ./wordsearch искомое_слово # В указанной директории: ./wordsearch /путь/к/директории искомое_слово # С игнорированием регистра: ./wordsearch -i /путь/к/директорий ИскОмоЕ_СлОвО ``` ## Пример вывода ``` /home/user/files/document.txt:12: Эта строка содержит искомое_слово. /home/user/files/.hidden_folder/notes.txt:45: Здесь также есть искомое_слово. ``` ## Реализация Файл `wordsearch.c` реализует следующие функции: - `process_dir(const char *path)` — рекурсивный обход директории. - `search_file(const char *filepath)` — построчное чтение через `fgets` и поиск с помощью `strstr` или `strcasestr`. - Парсинг аргументов командной строки, установка флага `ignore_case`. ## Дополнительное задание 1: игнорирование регистра (-i) Флаг `-i`: сравнение сделано через `tolower`. ## Дополнительное задание 2: использование `mmap` Доступ к файлам через отображение-в-память сделан.