我试图使用mmap用C只是为了看看它到底工作。 目前,我试图通过字节使用mmap读取一个二进制文件的字节。 我的代码是这样的:
#include <unistd.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
int main(int argc, char *argv[]) {
int fd;
char *data;
for ( int i = 1; i<argc; i++)
{
if(strcmp(argv[i],"-i")==0)
fd = open(argv[i+1],O_RDONLY);
}
data = mmap(NULL, 4000, PROT_READ, MAP_SHARED, fd, 8000);
int i = 0;
notation = data [i];
// ......
}
当我尝试符号=数据[0],我得到一个segfault出现我的问题。 我相信,在二进制文件的第一个字节是一个字符为好。 我的for循环检查是否存在-i标志在编译时,如果有下一个参数应该是文件名。