/dev/mem是物理記憶體的全映像,可以用來訪問物理記憶體,一般用法是open("/dev/mem",o_rdwr|o_sync),然後mmap,接著就可以用mmap的位址來訪問物理記憶體,這實際上就是實現使用者空間驅動的一種方法。
它的好處參見博文:
#include #include #include #include #include #include #include #include #include #include #include #define map_size 4096ul
#define map_mask (map_size - 1)
unsigned long phymem_get(unsigned long addr)
/* map one page */ //將核心空間對映到使用者空間
map_base = mmap(0, map_size, prot_read | prot_write, map_shared, fd, addr & ~map_mask);
if(map_base == (void *) -1)
virt_addr = map_base + (addr & map_mask);
val = *((unsigned long *) virt_addr);
if(munmap(map_base, map_size) == -1)
close(fd);
return val;
}int phymem_set(unsigned long addr,unsigned long val)
/* map one page */ //將核心空間對映到使用者空間
map_base = mmap(0, map_size, prot_read | prot_write, map_shared, fd, addr & ~map_mask);
if(map_base == (void *) -1)
virt_addr = map_base + (addr & map_mask);
*((unsigned long *) virt_addr) = val;
if(munmap(map_base, map_size) == -1)
close(fd);
return 0;
}
利用redis實現使用者簽到
很多 都提供了簽到功能 這裡不考慮資料落地事宜 並且需要展示最近乙個月的簽到情況,如果使用bitmap我們怎麼做?一言不合亮 redis new redis redis connect 127.0.0.1 使用者uid uid 1 記錄有uid的key cachekey sprintf sign d...
利用SSH框架實現使用者登入功能
由於是登入功能,要用到表單,所以相應的就要用到actionform,寫乙個類,繼承於actionform類,由於已經有乙個pojo物件了,所以不用再寫eneity物件。直接在裡面例項化乙個pojo物件user,並提供set 與get 方法。如下 private user user new user ...
Freeradius Mysql實現使用者認證
作者採用mysql 4.0與freeradius 0.9成功實現了認證與計費功能,下面是我遇到的一些問題,希望大家在遇到與我相同問題時少走一些彎路 configure make make install 之後執行radius x命令,若你看到類似authenting on port 1812,acc...