电商erp软件,黄石seo,个人网页设计作品代码,网站的图片怎么做1.mmap函数 \qquad返回值#xff1a;成功时#xff0c;返回创建的映射区首地址#xff1b;失败时#xff0c;返回宏MAP_FAILED。 \qquad参数#xff1a; \qquad\quad第一个参数addr#xff1a;建立映射区的首地址#xff0c;有linux内核指定#xff0c;使用时#xff…1.mmap函数
\qquad返回值成功时返回创建的映射区首地址失败时返回宏MAP_FAILED。 \qquad参数 \qquad\quad第一个参数addr建立映射区的首地址有linux内核指定使用时直接传入NULL \qquad\quad第二个参数length建立的映射区的大小 \qquad\quad第三个参数prot映射区的权限PROT_READPROT_WRITEPROT_READ|PROT_WRITE \qquad\quad第四个参数flags标志位参数MAP_SHARED:会将映射区所做的操作反映到物理设备(磁盘)上MAP_PRIVATE映射区所做的操作不会反映到物理设备上。 \qquad\quad第五个参数fd用来建立映射区的文件描述符 \qquad\quad第六个参数offset映射文件的偏移4k的整数倍
2.mmap的代码举例
#includestdio.h
#includesys/types.h
#includesys/stat.h
#includefcntl.h
#includestdlib.h
#includeerrno.h
#includestring.h
#includesys/mman.h
#includeunistd.hint main()
{int open_fd;open_fd open(m.txt,O_RDWR|O_CREAT,0777);if(open_fd-1){perror(m open fail);exit(1);}char* p NULL;int ftruncate_fd;ftruncate_fd ftruncate(open_fd,1024);if(ftruncate_fd-1){perror(ftruncate fail);exit(1);}p mmap(NULL,1024,PROT_READ|PROT_WRITE,MAP_SHARED,open_fd,0);if(pMAP_FAILED){perror(mmap fail);exit(1);}strcpy(p,hello world!\n);int close_mmap_fd;int close_fd;close_mmap_fd munmap(p,1024);if(close_mmap_fd-1){perror(close mmap fail);exit(1);}close_fd close(open_fd);if(close_fd-1){perror(m close fail);exit(1);}return 0;
}