vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2009-03-12 04:26 pm

Необычный процессор

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

Re: Хреново

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

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

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

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

Re: Хреново

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

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

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