os_labs/lab7
Yury Kurlykov fca8d3a057
Add 7th lab
2020-05-20 13:59:23 +10:00
..
.execme Add 7th lab 2020-05-20 13:59:23 +10:00
CMakeLists.txt Add 7th lab 2020-05-20 13:59:23 +10:00
README.md Add 7th lab 2020-05-20 13:59:23 +10:00
switch_case.c Add 7th lab 2020-05-20 13:59:23 +10:00

README.md

Лабораторная работа №7

Была поставлена задача разработать функцию, которая принимает строку и меняет регистр через модификацию 6-ого бита. Для ускорения предлагается читать строку из 32/64 бит, а не символ за один раз, если длина строки кратна 4/8 байт.

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

Поскольку при вводе из tty могут возникнуть проблемы с EOF (если длина ввода кратна восьми, то нужно дважды подавать сигнал Ctrl-D), программа считывает символы по одному, если обнаруживает, что stdin принадлежит tty. Также в tty программа останавливает чтение строки на символе \n для удобства.

Применение битовой маски для всего блока в памяти затрудняется тем, что ввод может состоять не только из букв.