не могу прочитать из /dev/kmem (открывается нормально - читать не могу (()

Модератор: Модераторы разделов

чудо
Сообщения: 11

не могу прочитать из /dev/kmem

Сообщение чудо »

Suse 10.1 ядро 2.6.16.13-4.
хочу прочитать из /dev/kmem делаю это следующим образом:
#include <stdio.h>
#include <sys/types.h>
#include <errno.h>
#include <stdlib.h>
#include <fcntl.h>
#define KMEM_FILE "/dev/kmem"

static inline int rkml(int fd, uint offset, ulong *buf)
{
unsigned i;
i=lseek(fd,offset,SEEK_SET);
printf("lseek errno:%d\n",errno);
printf("lseek:%d\n",i);
i=read(fd, buf, sizeof(ulong));
printf("read errno:%d\n",errno);
printf("readed bytes:%d\n",i);
return i;
}

int main()
{
int kmem=0;
ulong l_seek=0xс00323c0;
uint fl=0;
ulong *buf=NULL;
buf=malloc(1*sizeof(ulong));
kmem = open(KMEM_FILE,O_RDWR);
if (kmem < 0) return 1;
fl =rkml(kmem,l_seek,buf);
printf ("readed 0x%x \n",*buf);
free(buf);
close(kmem);
return 0;
}

И в пезультате ничего не читается, read возвращает EINVAL.
Это какая то особенность Suse? раньше,на ядре 2.6.6 в Mandrake все работало. подскажите,как читать из kmem
Спасибо сказали: