2025-04-25 10:20:43 +03:00
2025-04-25 10:19:42 +03:00
2025-04-25 10:18:47 +03:00
2025-04-25 10:18:24 +03:00
2025-04-25 10:20:43 +03:00

Рекурсивный поиск слова в файлах директории

Описание

Программа wordsearch на языке C рекурсивно обходит заданную директорию и её вложенные каталоги (включая скрытые, начинающиеся с точки) и ищет указанное слово во всех текстовых файлах. При обнаружении выводятся полный путь к файлу, номер строки и сама строка с найденным словом.

Требования

  • Директория поиска передаётся первым аргументом командной строки (по умолчанию ~).
  • Слово для поиска передаётся вторым аргументом командной строки.
  • Поддерживается флаг -i для игнорирования регистра.
  • Обрабатываются скрытые файлы и директории.
  • Корректная обработка ошибок (отсутствие директории, ошибки доступа).

Сборка

make

Запуск

# По умолчанию ищет в ~:
./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

Доступ к файлам через отображение-в-память сделан.

Description
No description provided
Readme 34 KiB
Languages
C 94.5%
Makefile 5.5%