(1) write and read the persistent memory
Key :
PMEMobjpool pmemobj_create() // 创建持久化内存池
PMEMobjpool pmemobj_open() // 打开已创建的持久化内存池
PMEMoid pmemobj_root() // 得到持久化内存池的根节点
pmemobj_direct() // 得到根节点的指针
pmemobj_persist() // 将单变量进行持久化存储
pmemobj_memcpy_persist() // 将数组等变量进行持久化存储
pmemobj_close() // 关闭内存池
write the persistent memory
#include <stdio.h>
#include <string.h>
#include <libpmemobj.h>
#define LAYOUT_NAME "intro_1"
#define MAX_BUF_LEN 10
struct my_root {
size_t len;
char buf[MAX_BUF_LEN];
};
int main(int argc, char *argv[])
{
if (argc != 2) {
printf("usage: %s file-name\n", argv[0]);
return 1;
}
// 创建持久化的内存池
PMEMobjpool *pop = pmemobj_create(argv[1], LAYOUT_NAME, PMEMOBJ_MIN_POOL, 0666);
if (pop == NULL) {
perror("pmemobj_create");
return 1