2016-09-20 58 views
-1

在linux中,有没有办法将数据直接写入物理地址(比如0x777777)? 我们可以为特定物理地址创建一个虚拟地址(0x777777)我们可以写入物理地址linux

编辑: PS:我不会尝试这样做。这只是为了澄清我的理解

+1

你为什么要这么做?导致分段错误? – GhostCat

回答

0

这将导致SIGSEGV。要做到这一点,您必须使用系统特定功能来映射包含此确切地址的内存区域,然后再尝试访问它。

不管怎么说,你最好知道你在做这个东西,但是你可以使用

*(int*)0x7777777 = 2345 

映射到物理位置由OS已经照顾。

+0

感谢您的回答。当你这样做“*(int *)0x7777777 = 2345”时,这意味着0x7777777是一个虚拟地址。并且将被映射到一些随机的物理地址。 – user009122

+0

0x77777是物理地址。所以在编写代码之前,请确定你在做什么。 – deosha