URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6093
[ Назад ]

Исходное сообщение
"read возвращает -1"

Отправлено maestrozi , 17-Янв-07 18:43 
Прямой доступ к адресному пространству ядра обеспечивает файл устройства
/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);

Содержание

Сообщения в этом обсуждении
"read возвращает -1"
Отправлено BigHo , 17-Янв-07 19:05 
большую часть ответа можно найти, прочитав значение переменой errno.

"read возвращает -1"
Отправлено Michelnok , 17-Янв-07 19:16 
>kmem=open("dev/kmem",o_RDONLY);
>x=read(kmem,buf,4);

И что там должно быть по адресу 0?


"read возвращает -1"
Отправлено maestrozi , 17-Янв-07 19:40 
>>kmem=open("dev/kmem",o_RDONLY);
>>x=read(kmem,buf,4);
>
>И что там должно быть по адресу 0?

ну неважно...хоть бы нули прочитал...
а он ничего не читает,и -1 дает...
lseekом сталю на др. адрес - то же самое.


"read возвращает -1"
Отправлено phpcoder , 17-Янв-07 20:11 
s/o_RDONLY/O_RDONLY/ ?