add README
This commit is contained in:
parent
f07c2ef73a
commit
e2561d03c2
46
README.md
Normal file
46
README.md
Normal file
@ -0,0 +1,46 @@
|
||||
# Рекурсивный поиск слова в файлах директории
|
||||
|
||||
## Описание
|
||||
Программа `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`
|
||||
Доступ к файлам через отображение-в-память сделан.
|
||||
Loading…
x
Reference in New Issue
Block a user