touch: cannot touch '/tmp/ipc/shmem/shm_test': Permission denied
时间: 2023-08-21 09:04:50 浏览: 51
这个错误通常是由于权限不足导致的。如果您是在 Linux 系统上运行这个命令,可能是因为您没有足够的权限来访问 `/tmp/ipc/shmem` 目录或创建名为 `shm_test` 的共享内存对象。您可以尝试使用 `sudo` 命令或联系系统管理员以获取必要的权限。如果您在其他操作系统上运行此命令,请检查您的用户权限和文件系统的访问权限。
相关问题
1293void RTE_BSW_Can_Write_HUDTSRActReq2( const RTE_BSW_SHMEM_VCAN_HUD_TSR_ACTIVATE_REQ2* info ) 1294{ 1295 RET_FSIF_SHMEM ret = RET_FSIF_SHMEM_OK; 1296 CID 1064090 (#1 of 1): MISRA C-2012 Pointer Type Conversions (MISRA C-2012 Rule 11.8) 1. misra_c_2012_rule_11_8_violation: The type cast of the pointer expression info to type void * removes const qualifier from the pointed to type. 1297 ret = FSIF_Shmem_Write( SHMEMID_VCAN_HUD_TSR_ACTIVATE_REQ2, sizeof(RTE_BSW_SHMEM_VCAN_HUD_TSR_ACTIVATE_REQ2), 0, (void*)info ); 1298 if( RET_FSIF_SHMEM_OK != ret ) { 1299 /* error */ 1300 } 1301} 修改以上代码的错误
要修复这个问题,你可以使用 const_cast 运算符来移除 const 限定符,而不是直接进行类型转换。
修改后的代码如下所示:
```c
void RTE_BSW_Can_Write_HUDTSRActReq2(const RTE_BSW_SHMEM_VCAN_HUD_TSR_ACTIVATE_REQ2* info)
{
RET_FSIF_SHMEM ret = RET_FSIF_SHMEM_OK;
ret = FSIF_Shmem_Write(SHMEMID_VCAN_HUD_TSR_ACTIVATE_REQ2, sizeof(RTE_BSW_SHMEM_VCAN_HUD_TSR_ACTIVATE_REQ2), 0, const_cast<void*>(static_cast<const void*>(info)));
if (RET_FSIF_SHMEM_OK != ret) {
/* error */
}
}
```
这样做会将指针类型保持不变,并且移除了 const 限定符。
请注意,使用 const_cast 需要谨慎操作,确保你了解代码的运行时行为,并确保对指针的修改不会导致未定义的行为。在进行类型转换时,请确保你的意图是正确的,并且没有更好的方法来解决问题。
shmem_fault
引用\[1\]: 在共享内存中,当访问不到所需的页时,会调用shm_vm_ops的fault函数shmem_fault()。shmem_fault()会调用shmem_getpage_gfp()在page cache和swap中找一个空闲页,如果找不到就通过shmem_alloc_and_acct_page()分配一个新的页,最终会调用内存管理系统的alloc_page_vma在物理内存中分配一个页。\[1\]
引用\[3\]: 共享内存使用的page需要从磁盘中swap in。当找不到所需的页时,会调用shmem_swapin_page()函数来从磁盘中读取页。如果swap in成功,会更新相关的统计信息,如fault_type和major stats。\[3\]
综上所述,当共享内存中的页不可访问时,会通过调用相应的函数来从page cache、swap或磁盘中获取所需的页。如果找不到,则会分配一个新的页。这些操作都是在内存管理系统中进行的。
#### 引用[.reference_title]
- *1* [共享内存 设计原理-shm](https://blog.csdn.net/daocaokafei/article/details/124503339)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [BPF性能分析—内存篇page_fault](https://blog.csdn.net/happyAnger6/article/details/122629996)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)