📄 test2.c
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <fcntl.h>#include <sys/mman.h>#include <sys/stat.h>#include <unistd.h>int *ptr;int main(int argc, char **argv){ if (argc < 2) { fprintf(stdout, "Usage: %s <filename>\n", argv[0]); exit(1); } int fd; // int open(const char *path, int oflag, ... ); //if ((fd = open(argv[1], O_RDONLY | O_CREAT | O_EXCL | O_TRUNC, 0644)) < 0) if ((fd = open(argv[1], O_RDONLY | O_CREAT | O_EXCL, 0644)) < 0) { if (errno != EEXIST) { fprintf(stderr, "open() failed: %s\n", strerror(errno)); exit(1); } else { //if ((fd = open(argv[1], O_RDWR|O_TRUNC)) < 0) if ((fd = open(argv[1], O_RDWR)) < 0) { fprintf(stderr, "open() failed: %s\n", strerror(errno)); exit(1); } } } lseek(fd, sizeof(int), SEEK_SET); write(fd, "", 1); //void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off); if ((ptr = (int *) mmap(NULL, sizeof(int), PROT_READ, MAP_SHARED, fd, 0)) == MAP_FAILED) { fprintf(stderr, "mmap() failed: %s\n", strerror(errno)); exit(1); } fprintf(stdout, "mmap() successed.\n"); //*ptr = 9; fprintf(stdout, "value = %d\n", *ptr); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -