>Программное обеспечение, работающее в User Space, _не обязано_ обрабатывать ВСЕ возможные ошибки1. оно их вообще не обязано обрабатывать.
2. это просто правила хорошего тона и образования, если обрабатывается хотя бы одна ошибка, то обрабатывать и все остальные возможные ошибки хотя бы в секции по-умолчанию.
3.
>Так вот, ioctl() возвращать ENOENT _не имеет права_. Вообще никогда.
исключительные ситуации возможны ВСЕГДА.
особенно в io, где банально может быть выход устройства из строя и сбои. и, man ioctl
>Нет единого стандарта. Аргументы, возвращаемые значения и семантика ioctl() варьируются в соответствии с драйвером устройства (вызов, используемый как всеохватывающий, не полностью соответствует потоковой модели ввода/вывода в Unix).
поэтому возводить разработчиков в роль безгрешного идола — это банально оправдывать свой поуизм и безалаберность.
тем более что пульсу мало того, что НЕЧЕГО делать в uvc ВООБЩЕ, так для него уже существуют более высокоуровневые функции.