10.9 Упражнения

Предыдущая  Содержание  Следующая V*D*V

Filter реализует стандартную командную строку, где опции предшествуют аргументам с именами файлов, где флаги могут быть связаны и где значения опций могут быть связаны или определены как отдельные аргументы. К сожалению, pr(1) является широко доступной программой, которая не соответствует этому шаблону. Есть ли универсальное решение? Может ли флаг предоставить два или более значения аргументов, которые выглядят как отдельные аргументы?

Обратный вызов line должен быть изменён для возможности правильной обработки двоичных файлов. Целесообразно ли предоставлять обратный вызов byte? Какие есть альтернативы?.

Намного более эффективная, хотя и не переносимая, реализация попыталась бы отобразить файл на память, если это возможно. Интерфейс обратного вызова менять не обязательно, но модификация сделала бы его более надёжным.

respondsTo() должен знать имя первого компонента struct Method каждого описания класса. Отчёты -r в r-R.rep или скорее init в c-R.rep могут быть изменены, чтобы определить структуру для обхода этой проблемы.

Отчёт init может быть изменён, чтобы сгенерировать метод puto() для Class, который использует такую же технику, как и respondsTo() для вывода на экран всех тэгов и адресов методов.

Перенаправление вывода нашей программы sort в официальную sort(1) для проверки может вызвать удивление:

 

$ sort -r Sort.d | /usr/bin/sort -c -r

sort: disorder: int quit (_self, const Object @ filter);

 

Есть более эффективные пути для уплотнения списка в круговом буфере List_sort() до передачи его в qsort(). Действительно ли мы правильно прокручиваем его?

 

Предыдущая  Содержание  Следующая