c - mmap 对于新创建的文件失败

标签 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 响应权限被拒绝

最佳答案

通过使用 posix_fallocate(...) 为文件分配空间解决了该问题。

我以为mmap也会做分配(错误判断)

关于c - mmap 对于新创建的文件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53112889/

相关文章:

c - 使用 unix 域套接字编写单独的消息

c - 如何在 C 中进行无符号饱和加法?

c - 将存储多个 ch 的数组附加到 char 数组[]

python - 在 python 中使用 mmap 函数需要的示例

c - posix_memalign 与 mmap 有何不同

linux - mmap 是如何工作的?

c++ - 如果我对 C++ 的理解有误,请纠正我

c - 带信号量的 N 个线程的屏障

Python - 使用请求下载文件,直接到内存

linux - 像往常一样将物理内存映射到用户空间,struct page backed mapping