我知道,如果我试图打印一个数组元素的地址,它将是一个来自虚拟内存的地址,而不是来自真实内存(物理内存),即DRAM的地址。
printf ("Address of A[5] and A[6] are %u and %u", &A[5], &A[6]);
我发现地址是连续的(假设元素是字符)。实际上,它们可能不是连续的,至少在DRAM中不是。我想知道真正的地址。我该怎么做呢?
无论是Windows还是Linux,我都需要知道这一点。
套接字模块中的所有内容都正常工作,但是socket.get主机的名称给出了一个不想要的错误。
这是客户端代码:
import socket
s = socket.socket()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = socket.gethostbyname("DESKTOP-HC36K46")
port = 1122
s.connect((host,port))
print("CONNECTED TO SERVER")
while True:
data = s.recv
业务案例:
今年是2015年,我使用的是Linux内核3.17。我的ARM Linux有两个网卡,eth0和eth1。eth0用于在本地为旁边的人配置,eth1用于从远程进行配置。因此,它们的功能基本相同,除了eth0有一个人在现场插入电缆。
本地PC - eth0 My ARM Linux Computer eth1 -远程PC
使用eth0,PC软件可以配置用于配置的eth1 IP地址和端口。为此,我的eth0有一个预设的IP地址(192.168.1.2),这样PC软件就可以很容易地找到它。ARM Linux (3.17)应用程序需要侦听eth0端口A和eth1端口B(如果已配置),一旦连
为了在限制条件下测试软件,我尝试创建一个测试用例,其中提供的用户缓冲区被分配到一些非常低的内存地址上。非常接近NULL的东西,比如0x1000h。
事实证明,这是一个很难创造的条件。实际上,我无法在Linux、BSD、Windows或OS上使用malloc()生成这一结果。我确信这种情况可以发生在其他类型的设备上,但我需要一个可复制的测试用例,可以插入到CI测试套件中。
是否有任何具有中等复杂度(和依赖性)的已知方法来生成这样的条件?
编辑:选择解决方案,使用mmap()。注意,,首先需要降低最低地址限制,在/proc/sys/vm/mmap_min_addr上(在Linux上)是可读的。
s