gpt4 book ai didi

c - 在讨论进程地址空间的字符串部分时,指的是什么对齐方式

转载 作者:行者123 更新时间:2023-12-05 06:47:58 26 4
gpt4 key购买 nike

我正在尝试编写一个程序来公开 macOS 上其他 pids 的参数。我制作了 KERN_PROCARGS2 sysctl,但事实证明每个人和他们的狗都用错了。包括Apple的ps,以及Google的Chrome。 exec 系列函数都允许您将空字符串作为 argv[0] 传递,这不是很好,但它可能会发生,因此必须加以处理。在这种情况下,向前跳过返回缓冲区中 exec_path 之后的 NULL 的标准方法不起作用,因为最后一个 NULL 在其余参数之前实际上是一个空字符串的终止 NULL,所以你最终会跳过一个你不想跳过的参数,这可能会导致打印一个 env var 作为参数(我已经在许多程序中证实了这种行为)。

要正确执行此操作,必须计算要跳过多少个空值,而不是每次都跳过它们。网络上有对指针对齐的返回缓冲区的不同部分的引用,但是无论我尝试使用 len % 8 检查缓冲区的哪一部分,我都没有得到正确的计数填充 NULLs.

最佳答案

我写了一个库来正确地做到这一点:https://getargv.narzt.cam

关于c - 在讨论进程地址空间的字符串部分时,指的是什么对齐方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66943561/

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