【发布时间】:2014-03-13 05:24:13
【问题描述】:
我正在开发 ubuntu。
我正在尝试打开 /dev/mem 并收到 permission denied
int32_t open_memdev()
{
int32_t fd;
fd = open("/dev/mem", O_RDONLY);
if (fd < 0) {
printf("Failed to open /dev/mem : %s\n", strerror(errno));
return-EINVAL;
}
return fd;
}
这段代码总是打印"Failed to open /dev/mem : Operation not permitted"
我在 SO 上搜索过这个
这些q似乎在讨论无法访问1 MB以上的问题,但我的问题是我什至无法打开一次。
如果有帮助,请提供其他详细信息:
1) 我检查了配置是否启用了 CONFIG_STRICT_DEVMEM。
2) ls -l /dev/mem
crw-r----- 1 root kmem 1, 1 2014-03-13 13:57 /dev/mem
如果需要更多信息,请告诉我。
【问题讨论】:
-
你的"
id"是什么,你是root吗? -
@osgx 我澄清了这个 Q 是你提到的那个的副本。请您查看我的问题中的那部分。不,我不是根。有了root,我可以阅读。我想以普通用户身份阅读而不是root
-
@Manty 你不能。这就是权限的用途。
-
请解释一下为什么需要用普通的id访问
/dev/mem....
标签: c linux memory-management