gpt4 book ai didi

linux - 共享内存中的链表,linux内核

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:57 25 4
gpt4 key购买 nike

这是一个面试问题,我仍然对此感到困惑。

实现 2 个 API - 1.访问共享内存中存在的链表的头部

2.访问头部之后的元素

问题中的内核是Linux。

我在论坛上看到,不是使用指针,而是应该使用偏移量(如果不使用指针,它仍然是链表吗)

这部分我不是很懂。考虑到虚拟内存到位,也对将发生的地址转换感到好奇。

很抱歉这个问题含糊不清,但这就是我能弄清楚的。

感谢任何帮助。

谢谢

最佳答案

您不能使用指针,因为无法确保共享内存在两个进程中都映射到同一地址。一个进程不知道如何处理指向另一个进程的虚拟地址空间的指针。

因此,您将偏移量存储到共享内存块中。两个进程都确切地知道共享内存块的第 712 个字节是什么。要访问这样的偏移量,您需要将偏移量添加到共享内存块在此特定进程中映射到的基地址,这会创建一个您可以在该特定进程中使用的指针。

关于linux - 共享内存中的链表,linux内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9439780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com