//mmap的用法 #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/mman.h> #include <sys/types.h> #include <sys/stat.h> //获取文件大小,单位bytes size_t getFileSize(const char* path) { struct stat buf; if( stat(path, &buf)<0 ) { perror("stat"); exit(1); } return buf.st_size; } int main(int argc, char *argv[]) { char* pmap=NULL; size_t filesize=getFileSize("passwd"); int fd=open("passwd", O_RDONLY); if( fd<0 ) { perror("open"); exit(1); } pmap=(char*)mmap(NULL, filesize, PROT_READ, MAP_SHARED, fd, 0); if( MAP_FAILED==pmap ) { perror("mmap"); exit(1); } write(1, pmap, filesize); close(fd); munmap(pmap, filesize); return 0; } 该代码实现的是读取文件的内容显示到屏幕上。