📄 write.c
字号:
/* * write shared memory*/#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/mman.h>#include <string.h>#include <errno.h>#define MAPPED_FILENAME "/tmp/test.mmap.1"int main(){ int fd; /* step 1, open file, get a fd */ if( (fd = open(MAPPED_FILENAME, O_RDWR|O_CREAT|O_EXCL, 0666)) < 0 ) { perror( "open error" ); exit(1); } off_t offset = 1024; /* step 2, create a hole file */ if( lseek(fd, offset, SEEK_SET) == (off_t)-1 ) { perror( "lseek failed" ); close( fd ); exit(1); } ssize_t n; if( (n = write(fd, " ", 1)) < 0 ) { perror( "write error" ); exit(1); } void *p; /* step 3, mmap(), get a pointer */ if( (p = mmap(NULL, 1024, PROT_WRITE, MAP_SHARED, fd, 0)) == MAP_FAILED ) { perror( "mmap error" ); close( fd ); exit(1); } close( fd ); fprintf( stdout, "mapped file to memory, size = %d\n", 1024 ); /* read/write on shared memory */ char *banner = "hello, world."; memcpy( p+256, banner, strlen(banner) ); pause(); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -