[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Упражнения
Задача 1 - Таблица поиска строк в текстовом файле
Написать программу, которая анализирует текстовый файл, созданный
текстовым редактором, таким как ed(1) или vi(1). После запроса,
который предлагает ввести номер строки, с использованием printf(3S)
программа печатает соответствующую строку текста. Ввод нулевого номера
завершает работу программы.
Используйте open(2), read(2), lseek(2) и close(2) для  ввода/вывода.
Постройте таблицу отступов в файле и длин строк для каждой строки
файла. Как только эта таблица построена, позиционируйтесь на начало
заданной строки и прочтите точную длину строки. Предполагайте, что
файл не длиннее сотни строк.
Подсказка: Выберите или создайте текстовый файл с короткими строками.
Помните, что первая строка начинается с нулевого отступа в файле.
Найдите каждый символ перевода строки, запишите его позицию; в
программе следует использовать вызов lseek(fd, 0L, 1). Для отладки
распечатайте эту таблицу и сравните с таблицей, полученной вручную.
Как только таблицы начнут совпадать, можно приступать к запросу номера
строки.
Задача 2 - Таблица поиска строк в текстовом файле
Измените программу так, чтобы пользователю отводилось 5 секунд на ввод
номера строки. Если пользователь не успевает, программа должна
распечатать все содержимое файла и завершиться. Если же пользователь
успел в течение пяти секунд ввести номер строки, то программа должна
работать, как в задаче 1.
Задача 3 - Таблица поиска строк в текстовом файле
Измените программу 2 так, чтобы использовалось отображение файла в
память взамен использования read(2), lseek(2) и write(2).