я рассматриваю пример модуля ядра при этом pageНевозможно понять работу в read_proc в модуле ядра Linux
read_proc используется в программе следующим образом:
int fortune_read(char *page, char **start, off_t off,
int count, int *eof, void *data)
{
int len;
if (off > 0) {
*eof = 1;
return 0;
}
/* Wrap-around */
if (next_fortune >= cookie_index) next_fortune = 0;
len = sprintf(page, "%s\n", &cookie_pot[next_fortune]);
next_fortune += len;
return len;
}
Может кто-то объяснить, почему ОТКЛ проверено, чтобы оно было больше 0. Более того, кто-то может объяснить важность аргументов off и count.
До сих пор я понимаю, что мы должны писать данные на странице и должны установить eof, когда данные закончились.
Спасибо.
Значение 'off' (смещение в файле) больше нуля означает, что вызов функции' fourtune_read' не является первым. В этом случае пользователю нечего писать, поскольку в первый раз были данные. –