我正在编写一个自修改程序;已经开始工作了。我找到了这两个函数,但不确定它们到底做了什么,我喜欢正确地评论我的代码。
pagesize 是使用 getpagesize 获得的
/*
* Defining variables:
* func - function in memory I'm using mprotect on
* offset - the offset in memory
* ptr - the pointer to the memory
*/
unsigned int offset = (unsigned int)( ((long)func) & (pagesize-1) );
unsigned char * ptr = (unsigned char *) ((long)func & (~(pagesize-1) ) );
我发现 offset 的函数被用于内存对齐检查。我隐约知道他们在做什么,但不知道有什么区别?
谢谢。