Книга: Разработка приложений в среде Linux. Второе издание
16.5.3. Флаги
16.5.3. Флаги
Четыре флаговых переменных — c_iflag
, с_oflag
, c_cflag
и c_lflag
— хранят флаги, управляющие определенными характеристиками. Заголовочный файл <termios.h>
предоставляет символические константы битовых масок, которые, в свою очередь, предоставляют эти флаги. Устанавливайте их с помощью |=
и переустанавливайте с помощью &=
и как показано ниже.
t.c_iflag |= BRKINT;
t.c_iflag &= ~IGNBRK;
Некоторые из этих символических определений в действительности являются битовыми масками, охватывающими несколько взаимозависимых констант. Они используются с целью извлечения частей структуры для сравнения:
if ((t.c_cflag & CSIZE) == CS7) character_size = 7;
Набор флагов меняется от системы к системе. Наиболее важные флаги определены POSIX, но Linux, как и System V, включает несколько полезных флагов, не описанных в POSIX. Эта документация неполная; Linux поддерживает флаги, которые вряд ли понадобятся. Будут рассмотрены только те флаги, которые будут нужны наверняка.
Чтобы предоставить возможность создавать переносимое программное обеспечение, мы пометили каждый флаг, не определенный стандартом POSIX. Для таких флагов потребуется писать такой код:
#ifdef IUCLC
t.c_iflag |= IUCLC;
#endif
Также упоминаются области, представляющие особые проблемы переносимости, поэтому мы рассмотрим некоторые подробности функционирования других систем.
- Флаги форматирования строк .NET
- Флаги gfp_mask
- Флаги областей VMA
- Управляющие флаги дескриптора безопасности
- Флаги Международного свода сигналов
- 10.1.6. Флаги
- 16.5.6. Управляющие флаги
- Цифровые флаги Военно-морского свода сигналов
- Цифровые флаги Международного свода сигналов
- 16.5.4. Флаги режима ввода
- 16.5.5. Флаги режима вывода
- 16.5.8. Локальные флаги