unsigned char *map_file(char *filename, uint64_t *len) {
uint64_t fd = open64(filename, O_RDONLY);
struct stat64 st;
fstat64(fd, &st)
unsigned char *map;
map = (unsigned char *)mmap64(0, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
对于大文件(我正在测试8.7 GB的文件),st.st_size最终会变为4294967295,这会导致分段错误(在47%处)。机器是64位的,操作系统(Ubuntu)也是64位的。我做错了什么?
#define
,则必须确保在使用它的任何#includes
之前定义它。否则我不知道会有什么区别。 - Karl Bielefeldt