пятница, 24 февраля 2023 г.

Четыре потока

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

Немножко повозился с консолью терминала. Новый алгоритм работы в терминале потребовал изменить логику потоков. Которая получается отличной от концепции терминала в языке C.

В C мы имеем три потока: 

  • поток ввода, 
  • поток вывода, 
  • поток вывода сообщений об ошибках.

Новый алгоритм предлагает четыре потока:

  • поток ввода команд,
  • поток ввода текста, выводимого в поток вывода,
  • поток вывода текста,
  • поток вывода сообщений об ошибках.
Вроде бы я составил алгоритм работы при вводе текста и команд из консоли и выводе текста в консоль, но теперь нужно начать выводить текст в файл. Так что не уверен, не придётся ли написанный код править ещё.

Теперь надо сделать функции открытия и закрытия файла для вывода текста. И команд в том числе.

Вижу себе это так:

text_out_file myfile = "~/my_texts/text01.txt" // Задаём имя файла
myfile rewrite // Открываем файл для перезаписи данных
               // Или append - чтобы открыть файл для добавления данных
out_stream = myfile  // Делаем myfile потоком вывода
myfile close    // Закрываем файл (потоком вывода снова становится cout

Значит нужно сделать:
  • таблицу объектов,
  • объект типа text_out_file
  • объект out_stream.
Насчёт объекта out_stream я пока не уверен, ведь это имя свойства консоли. Наверное правильнее сделать объект console, и обращаться к нему явно. Но это нужно придумать, как пользователь будет управлять консолями ввода-вывода.

Неявно консоль создаётся при запуске программы или при выполнении команды exec. Но правильно ли это?

Пока не хочу забегать вперёд.

Комментариев нет: