Прямой доступ к адресному пространству ядра обеспечивает файл устройства
/dev/kmem. В этом файле отображено все доступное виртуальное адресное
пространство, включая раздел подкачки (swap-область). Для работы с файлом kmem
используются стандартные системные функции - open(), read(), write(). Открыв
стандартным способом /dev/kmem, мы можем обратиться к любому адресу в системе,
задав его как смещение в этом файле.
-это цитата.
открыв /dev/kmem - открылся дескриптор=3
пытаюсь почитать - возвращает -1
все делаю под rootом
почему?
int kmem,x;
char *buf
kmem=open("dev/kmem",o_RDONLY);
x=read(kmem,buf,4);
большую часть ответа можно найти, прочитав значение переменой errno.
>kmem=open("dev/kmem",o_RDONLY);
>x=read(kmem,buf,4);И что там должно быть по адресу 0?
>>kmem=open("dev/kmem",o_RDONLY);
>>x=read(kmem,buf,4);
>
>И что там должно быть по адресу 0?ну неважно...хоть бы нули прочитал...
а он ничего не читает,и -1 дает...
lseekом сталю на др. адрес - то же самое.
s/o_RDONLY/O_RDONLY/ ?