Подробности

[В начало]

Проблема в стандарте № S0026

Краткое описание

Противоречие между макроопределениями скоростей терминалов в разных разделах

Подробное описание

Значения констант, обозначающих разные скорости передачи данных между системой и терминалом, определяются двумя разными способами в разных разделах LSB 3.1.

Linux Standard Base Core Specification 3.1, 9.4. Data Definitions for libc, 9.4.58,
termios.h has the following definitions:


#define B0      0000000
#define B50     0000001
#define B75     0000002
#define B110    0000003
#define B134    0000004
#define B150    0000005
#define B200    0000006
#define B300    0000007
#define B600    0000010
#define B1200   0000011
#define B1800   0000012
#define B2400   0000013
#define B4800   0000014
#define B9600   0000015
#define B19200  0000016
#define B38400  0000017

Linux Standard Base Core Specification 3.1, 9.5. Interface Definitions for libc,
cfsetspeed has another definitions:


#define B0      0
#define B50     50
#define B75     75
#define B110    110
#define B134    134
#define B150    150
#define B200    200
#define B300    300
#define B600    600
#define B1200   1200
#define B1800   1800
#define B2400   2400
#define B4800   4800
#define B9600   9600
#define B19200  19200
#define B38400  38400

Возможные последствия

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

Принято

LSB Bugzilla, 1294

Статус

Исправлена в LSB 3.2

[В начало]