我的程序使用创建文件
HANDLE_ERROR(fd = open(path/to/file,O_WRONLY|O_CREAT,0640)))
映射
uint8_t *output_file_addr = (uint8_t *)mmap ( NULL, size , PROT_WRITE, MAP_SHARED, fd, 0 )
if(output_dic_addr == MAP_FAILED){
fprintf(stderr,"%s\n",strerror(errno));
exit(EXIT_FAILURE);
}
mmap回复权限被拒绝
答案 0 :(得分:0)
该问题通过使用 posix_fallocate (...)为文件分配一个空格来解决。
我认为mmap也将进行分配(错误判断)
答案 1 :(得分:0)
不可能在典型的硬件上创建只写映射,并且在没有读取权限的情况下已打开文件。