bose писал(а):
При работе с read_proc_t я сделал следующие неаблюдаения, которые не очевидны из текстового описания (в различных источниках):
- При каждом вызове функции можно отдать 3072 байта данных (как я уже говорил иногда катит 4096, но в 1 способе из трёх имеющихся)
Не пользуйтесь классификацией "в 1 способе из трёх имеющихся" - я
уже давно не понимаю кто из них какой: 1-й, 2-1, 3-й, 4-й... Но я хоть внимательно слежу за темой, а если кто со стороны решит почитать? - да он с ума сойдёт!
Или напишите
явную квалификацию 1 раз: 1-й способ - это ... , 2-й способ - это ...
bose писал(а):
[*]Данные, которые мы отдаём из функции виртуально бесконечные, но отдавать мы их можем частями по 3КБ. Отсюда - смещение (параметр off), это смещение в наших данных, которые мы передаём, а не в буфере с помощью которого мы обмениваемся (просто в случае когда объём данных <3КБ, значение смещения может совпадать )[/*]
[*]Смещение off - не всегда смещение в данных, которые ты передаёшь. Это может быть например индекс в массиве структур, или просто счётчик (это второй способ реализации функции, когда *start устанавливается в значение меньшее чем адресс буфера обмена). Тогда логика вычисления смещения(индекса) становится такой:
Мне это как-то непонятно и странно... off - это
входной параметр, который нам передаётся как
копия (по значению), который мы можем принять к сведению ... или не принять, но влиять на него никак не можем. Откуда тогда "не всегда"? "может быть"? ... если мы никак не можем влиять на то, что это может быть?
bose писал(а):
Код: Выделить всё
*ppos += start < page ? (unsigned long)start : n;
[/*]
Здесь меня тоже смущает вольница в толковании (типов).
start - это
указатель на указатель ... это, как кому нравится, может быть:
выходной (изменяемый) параметр вызова ... массив указателей, если кому так нравится
- но
(unsigned long)start -
это круто! в Linux повсеместно 32-бит толкуются то как целое, то как указатель (без каких либо преобразований) ... что потом создаёт им же проблемы при переходе к 64-бит, которые они успешно решают...
Но
указатель на указатель - в целое? это круто ... господа понимают толк и вкус в настоящих извращениях