vak: (Default)
[personal profile] vak
Загадка: на каком из процессоров sizeof(int) == sizeof(char)?
Вполне современная архитектура, массово выпускается одной из известных западных фирм.

Re: Хреново

Date: 2009-03-13 13:57 (UTC)
From: [identity profile] dvv.livejournal.com
А разве POSIX где–то оперирует термином „октет”?

Date: 2009-03-13 14:14 (UTC)
From: [identity profile] dvv.livejournal.com
Ну а какие проблемы? Один октет прекрасно влезает в один широкий байт. Какие проблемы с нечётным количеством широких байтов?

Date: 2009-03-13 14:32 (UTC)
From: [identity profile] dvv.livejournal.com
Так мы о read() или о COM—портах? Если первое, то естественно, read() должен читать полные (широкие!) байты, а если второе, это дело драйвера утрясать представление данных между устройством и всей остальной системой.

Date: 2009-03-13 16:32 (UTC)
From: [identity profile] dvv.livejournal.com
Нету в POSIXе двух режимов :-)

Re: Хреново

Date: 2009-03-13 15:24 (UTC)
From: [identity profile] spamsink.livejournal.com
Не вижу проблемы. read/write могут читать-писать по одному октету на байт (write - возвращать ошибку, если в записываемом байте попался не октет), а для упакованного чтения-записи могут быть отдельные системные вызовы.

Date: 2009-03-13 16:23 (UTC)
From: [identity profile] spamsink.livejournal.com
Ну хорошо, не отдельные, а переключать режимы с помощью ioctl. По умолчанию работают только четные количества октетов (вот такой block device с блоком в 2 байта), а если очень хочется, то можно переключить в распакованный режим.

Date: 2009-03-13 16:40 (UTC)
From: [identity profile] dvv.livejournal.com
Это ещё зачем? Ты ж не заводишь отдельные системные вызовы для, скажем, устройства, у которого регистры выдают по 2 бита?