| const char filename[] = "testfile";
intfd;
char *mapped_mem;
const intflength = 1024;
fd = open(filename, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
lseek(fd, flength 1, SEEK_SET);
write(fd, "\0", 1);
lseek(fd, 0, SEEK_SET);
mapped_mem = mmap(0,
flength,
PROT_WRITE, //答应写入
MAP_SHARED,//写入内容被立即写入到文件
fd,
0);
close(fd);
//使用映射区域.
...
munmap(file_memory, flength); | 利用内存映射来处理IPC的好处是在整个过程中你不需要处理句柄:只要打开文件并把它映射在合适的位置就行了。你可以在两个不相关的进程间使用内存映射文件。
使用内存映射的缺点是速度不如共享内存快。假如凑巧文件很大,所需要的虚拟内存就会很大,这样会造成整体性能下降。
| 共2页: 上一页 [1] 2 下一页 |
评论加载中…