Почему не работает (я конечно знаю, что потому, что я что-то неправильно сделал; надеюсь объясните что...) ?
#include <unistd.h> #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/mman.h>
int main (void) { int fd; char *base;
int i;
fd = open ("/dev/mem", O_RDWR);
base = mmap ( 0, 65536, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0xB8000 );
for (i = 0; i < 80 * 25; ++i) { *(base + i * 2) = 'A'; *(base + i * 2 + 1) = 0x55; }
return (0); }
P. S. Запускаю под рутом, выполняется, но ничего не изменяет...