【发布时间】:2021-01-23 14:10:22
【问题描述】:
我有以下代码 sn-p :
fd_mem = shm_open(MEM_NAME , O_RDWR | O_CREAT | O_EXCL , 0600);
//Why do we use unlink before having mmaped ?
shm_unlink ( MEM_NAME );
ftruncate (fd_mem , mem_size)
plateau = (char*) mmap(NULL , mem_size , PROT_READ | PROT_WRITE , MAP_SHARED , fd_mem , 0);
我的问题是:为什么我们在将文件映射到进程的虚拟内存之前使用“取消链接”?我对shm_unlink() 在这方面的工作方式感到困惑。我认为它会删除使 fd_mem 无法使用的文件,但它不会。
【问题讨论】:
标签: c linux shared-memory code-cleanup