The value returned by sysconf(_SC_PAGE_SIZE) or by sysconf(_SC_PAGESIZE) is not the actual, virtual-memory page size used by the system; it is the value used by the mmap() call. You can also get this value using the macro PAGESIZE, defined in <limits.h>. The macro is not portable, but can be more convenient.