Эта проблема может быть решена путем правильной установки *off
(четвертый параметр my_read()
).
Вам нужно возвращать счет в первый раз и ноль со второго раза вперед.
if(*off == 0) {
while (msg[count] != 0) {
put_user(msg[count], buff++);
count++;
(*off)++;
}
return count;
}
else
return 0;