Ответы пользователя по тегу C
  • Что такое other speed descriptor применительно к USB?

    CleverMouse
    @CleverMouse
    Первый байт любого usb-дескриптора — длина, второй байт — тип. Дескриптор 09 07 4A 00 01 02 01 C0 28 имеет тип 7, OTHER_SPEED_CONFIGURATION.

    Видели когда-нибудь сообщение «Это устройство может работать быстрее»?

    Если HighSpeed-устройство (скорость USB2) подключить к компьютеру или хабу, не понимающему USB2, а знающему только скорости USB1 FullSpeed/LowSpeed, устройство обязано проходить несколько начальных этапов инициализации как FullSpeed. Полностью работать не обязано, хотя обычно работает. Дескриптор OTHER_SPEED_CONFIGURATION, если он есть, — способ устройства в такой ситуации сообщить системе, что хоть оно сейчас и работает на FullSpeed, но про HighSpeed тоже знает, просто хаб такой попался по пути или компьютер старый. У чисто FullSpeed-устройств его нет.

    Частично правильную ссылку на документацию вам уже привели выше. В USB3 тип 7 помечен как Reserved и не используется, но есть ссылка «Note that when operating at USB 2.0 speeds, the device shall report the other USB 2.0 speeds it supports using the standard mechanism defined in the USB 2.0 specification». Читать нужно спецификацию USB2, пункт, действительно, 9.6.4. Впрочем, там не особенно интересно — структура дескриптора точно такая же, как структура обычного Configuration Descriptor, с поправкой на тип.
    Ответ написан
    Комментировать
  • Синхронизация в Си или чем отличается вывод в файл от вывода в stdout

    CleverMouse
    @CleverMouse
    Попробуйте в shell-скрипте открывать файл не через ">", а через ">>", убедившись, что перед операцией файла не существует.
    Возможно, различные процессы каким-то образом получают несвязанные копии дескриптора файла, в которых позиция в файле не обновляется при печати из других процессов; тогда процесс 1 может напечатать свою букву a, а потом процесс 2 печатает свою букву b на ту же позицию в файле, затирая a от первого процесса. С консолью такой проблемы нет, потому что она не seekable, в ней нет позиции как таковой. Открывание файла для дозаписи преследует ту же цель — перед каждой операцией записи позиция будет устанавливаться на конец файла.
    Ответ написан
    1 комментарий