mmap对于新创建的文件失败

时间:2018-11-02 04:59:54

标签: c mmap

我的程序使用创建文件

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回复权限被拒绝

2 个答案:

答案 0 :(得分:0)

该问题通过使用 posix_fallocate (...)为文件分配一个空格来解决。

我认为mmap也将进行分配(错误判断)

答案 1 :(得分:0)

不可能在典型的硬件上创建只写映射,并且在没有读取权限的情况下已打开文件。